@font-face{font-family:JetBrains Mono;src:url(/assets/JetBrainsMono-Thin-BhSco1Ve.woff2) format("woff2");font-weight:100;font-style:normal;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/assets/JetBrainsMono-ThinItalic-CYUYT2s8.woff2) format("woff2");font-weight:100;font-style:italic;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/assets/JetBrainsMono-ExtraLight-C7N-6bva.woff2) format("woff2");font-weight:200;font-style:normal;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/assets/JetBrainsMono-ExtraLightItalic-DddGSQ2K.woff2) format("woff2");font-weight:200;font-style:italic;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/assets/JetBrainsMono-Light-Bgq2Dg64.woff2) format("woff2");font-weight:300;font-style:normal;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/assets/JetBrainsMono-LightItalic-Pc6KfEyb.woff2) format("woff2");font-weight:300;font-style:italic;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/assets/JetBrainsMono-Regular-BQaDgvhP.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/assets/JetBrainsMono-Italic-CFFf43z2.woff2) format("woff2");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/assets/JetBrainsMono-Medium-3S3k2nMz.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/assets/JetBrainsMono-MediumItalic-BKKs7F3t.woff2) format("woff2");font-weight:500;font-style:italic;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/assets/JetBrainsMono-SemiBold-BM8Dc2t-.woff2) format("woff2");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/assets/JetBrainsMono-SemiBoldItalic-CekZ8Kac.woff2) format("woff2");font-weight:600;font-style:italic;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/assets/JetBrainsMono-Bold-D4WEaHbo.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/assets/JetBrainsMono-BoldItalic-1xQg2cDl.woff2) format("woff2");font-weight:700;font-style:italic;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/assets/JetBrainsMono-ExtraBold-D7I5JnSP.woff2) format("woff2");font-weight:800;font-style:normal;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/assets/JetBrainsMono-ExtraBoldItalic-C6RSiIdH.woff2) format("woff2");font-weight:800;font-style:italic;font-display:swap}:root{--primary-color: #00ff00;--primary-hover: #00cc00;--border-color: #1a4d1a}*{margin:0;padding:0;box-sizing:border-box}body{font-family:JetBrains Mono;background-color:#000;color:#fff;line-height:1.5}.app{min-height:100vh;display:flex;flex-direction:column}.main{flex:1;display:flex;justify-content:flex-start;align-items:flex-start;padding:20px;width:100%}.main>*{width:100%}@keyframes spin{to{transform:rotate(360deg)}}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#0c0c0c}::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--primary-color)}.footer{text-align:center;padding:24px;border-top:1px solid var(--border-color);color:#444;font-size:.8rem;display:flex;flex-direction:column;align-items:center;gap:8px}.footer-link{color:var(--primary-color);text-decoration:none;transition:color .2s}.footer-link:hover{color:var(--primary-hover);text-decoration:underline}.hljs{color:#a9b7c6;background:#2b2b2b}pre code.hljs,code.hljs{color:#a9b7c6;background:transparent}.hljs-comment,.hljs-quote,.hljs .hljs-comment,.hljs .hljs-quote,code.hljs .hljs-comment,code.hljs .hljs-quote{color:gray!important;font-style:italic}.hljs-doctag,.hljs-formula,.hljs .hljs-doctag,.hljs .hljs-formula{color:#629755!important}.hljs-keyword,.hljs-selector-tag,.hljs-literal,.hljs-section,.hljs .hljs-keyword,.hljs .hljs-selector-tag,.hljs .hljs-literal,.hljs .hljs-section,code.hljs .hljs-keyword,code.hljs .hljs-selector-tag,code.hljs .hljs-literal,code.hljs .hljs-section{color:#cc7832!important}.hljs-number,.hljs .hljs-number,code.hljs .hljs-number{color:#6897bb!important}.hljs-string,.hljs-meta .hljs-string,.hljs-regexp,.hljs-template-tag,.hljs-template-variable,.hljs .hljs-string,.hljs .hljs-regexp,code.hljs .hljs-string,code.hljs .hljs-regexp{color:#6a8759!important}.hljs-title,.hljs-title.function_,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-name,.hljs-type,.hljs-class .hljs-title,.hljs-built_in,.hljs-builtin-name,.hljs .hljs-title,.hljs .hljs-name,.hljs .hljs-type,.hljs .hljs-built_in,code.hljs .hljs-title,code.hljs .hljs-name,code.hljs .hljs-type,code.hljs .hljs-built_in{color:#ffc66d!important}.hljs-attr,.hljs-attribute,.hljs-variable,.hljs-template-variable,.hljs-params,.hljs-property,.hljs-punctuation,.hljs-operator,.hljs-subst,.hljs .hljs-attr,.hljs .hljs-attribute,.hljs .hljs-variable,.hljs .hljs-params,.hljs .hljs-property,code.hljs .hljs-attr,code.hljs .hljs-variable,code.hljs .hljs-params,code.hljs .hljs-property{color:#a9b7c6!important}.hljs-meta,.hljs-meta .hljs-keyword,.hljs .hljs-meta{color:#bbb529!important}.hljs-symbol,.hljs-bullet,.hljs-link,.hljs .hljs-symbol,.hljs .hljs-bullet,.hljs .hljs-link{color:#9876aa!important}.hljs-tag,.hljs .hljs-tag,code.hljs .hljs-tag,.hljs-tag .hljs-name,.hljs .hljs-tag .hljs-name{color:#e8bf6a!important}.hljs-tag .hljs-attr,.hljs .hljs-tag .hljs-attr{color:#bababa!important}.hljs-selector-id,.hljs-selector-class,.hljs-selector-attr,.hljs-selector-pseudo,.hljs .hljs-selector-id,.hljs .hljs-selector-class{color:#ffc66d!important}.hljs-addition,.hljs .hljs-addition{color:#6a8759!important}.hljs-deletion,.hljs .hljs-deletion{color:#bc3f3c!important}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}.file-preview-code-wrap .file-preview-code,.file-preview-markdown pre,.tiptap-editor pre,.tiptap-viewer pre,.article-content pre{background:#2b2b2b!important;color:#a9b7c6}.file-preview-code-wrap .file-preview-code code.hljs,.file-preview-markdown pre code.hljs,.tiptap-editor pre code,.tiptap-viewer pre code,.article-content pre code{background:transparent!important}.card{max-width:520px;width:100%;background-color:transparent;border:1px solid var(--border-color);padding:32px}.dashboard-card{max-width:1000px}.settings-card{max-width:900px}.article-create-card{max-width:800px}.title{color:var(--primary-color);font-size:2rem;font-weight:500;margin-bottom:8px;text-align:center;letter-spacing:-.5px}.subtitle{color:#666;text-align:center;margin-bottom:40px;font-size:.9rem}.field{margin-bottom:28px}.label{display:block;color:var(--primary-color);font-size:.8rem;text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px}.input{width:100%;background-color:#111;border:1px solid var(--border-color);padding:8px 12px;color:#fff;font-size:.9rem;outline:none;transition:border-color .2s;font-family:JetBrains Mono,monospace;height:36px}.input:focus{border-color:var(--primary-color)}.input:disabled{opacity:.5;cursor:not-allowed}textarea.input{resize:vertical;min-height:100px}.article-textarea{rows:15}.file-input{width:100%;background-color:#111;border:1px dashed var(--border-color);padding:16px;color:#aaa;cursor:pointer}.file-input::-webkit-file-upload-button{background-color:var(--border-color);border:none;color:#fff;font-weight:500;padding:8px 16px;margin-right:16px;cursor:pointer;transition:.2s}.file-input::-webkit-file-upload-button:hover{background-color:var(--primary-color);color:#000}.file-info{margin-top:12px;padding:8px 16px;background-color:#111;color:#b3ffb3;font-size:.9rem;border-left:2px solid var(--primary-color)}select.input{appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2300ff00' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");background-repeat:no-repeat;background-position:right 1rem center;background-size:1.2em;padding-right:2.5rem}select.input option{background-color:#111;color:#fff}.btn{background-color:transparent;border:1px solid var(--primary-color);color:var(--primary-color);padding:8px 16px;font-weight:500;font-size:.85rem;cursor:pointer;transition:.2s;white-space:nowrap;font-family:JetBrains Mono,monospace;height:36px;display:inline-flex;align-items:center;justify-content:center}.btn:hover{background-color:var(--primary-color);color:#000}.btn:disabled{opacity:.4;pointer-events:none;border-color:#444;color:#444}.btn.active{background-color:var(--primary-color);color:#000;border-color:var(--primary-color)}.action-btn{padding:8px 16px;font-size:.85rem;background-color:var(--primary-color);color:#000;border:none;font-weight:600;height:36px}.action-btn:hover{background-color:var(--primary-hover)}.cancel-btn{border-color:#f55;color:#f55}.cancel-btn:hover{background-color:#f55;color:#fff}.confirm-btn{background-color:var(--primary-color);color:#000}.progress-container{width:100%;height:4px;background-color:#111;margin:16px 0 12px;position:relative}.progress-bar{height:100%;background-color:var(--primary-color);transition:width .2s ease}.progress-text{display:block;text-align:right;color:var(--primary-color);font-size:.8rem;margin-top:4px}.status{background-color:#111;border:1px solid var(--border-color);padding:12px 16px;text-align:center;color:var(--primary-color);word-break:break-word;font-size:.9rem}.key-table{width:100%;border-collapse:collapse;margin-top:20px;color:#fff}.key-table th,.key-table td{padding:12px;text-align:left;border-bottom:1px solid var(--border-color)}.key-table th{color:var(--primary-color);font-weight:500;text-transform:uppercase;font-size:.8rem}.key-table td{color:#ccc}.clickable-row{cursor:context-menu}.clickable-row:hover{background-color:#00ff000d}.edit-row td{padding:0}.form-actions{display:flex;gap:12px;margin-top:16px}.empty-table-message{color:#666;text-align:center;padding:40px 20px}.context-menu{background:#0c0c0c;border:1px solid var(--primary-color);box-shadow:0 10px 30px #00ff001a;padding:8px 0;min-width:180px}.modal-overlay{position:fixed;inset:0;background:#000c;display:grid;place-items:center;z-index:1000}.modal-content{background:#0c0c0c;border:1px solid var(--border-color);padding:28px;width:480px;position:relative;box-sizing:border-box}.modal-content h2{color:var(--primary-color);margin-bottom:20px;font-size:16px}.modal-content form{display:flex;flex-direction:column}.modal-content input{margin-bottom:12px}.modal-content .action-btn{width:100%;margin-top:8px}.modal-actions{display:flex;gap:12px;margin-top:24px}.modal-close{position:absolute;top:10px;right:12px;background:transparent;border:none;color:#666;font-size:1.3rem;cursor:pointer;line-height:1;padding:4px}.modal-close:hover{color:#fff}.preview-modal{width:860px}.upload-modal{width:560px}.select-keys-modal,.select-access-modal{width:520px}.file-details-modal{width:600px}.publish-modal{width:520px}.edit-article-modal{width:90%;max-width:800px}.edit-access-modal{width:520px}.group-detail-modal{width:1000px;max-width:95%}.loader-dots{display:flex;align-items:center;justify-content:center}.loader-dot{border-radius:50%;animation:loader-pulse 1.4s ease-in-out infinite}.loader-dot-1{animation-delay:0s}.loader-dot-2{animation-delay:.2s}.loader-dot-3{animation-delay:.4s}@keyframes loader-pulse{0%,80%,to{transform:scale(.6);opacity:.4}40%{transform:scale(1);opacity:1}}.notification-container{position:fixed;top:20px;right:20px;z-index:2000;display:flex;flex-direction:column;gap:8px}.notification{padding:12px 20px;background:#0c0c0c;border:1px solid var(--border-color);color:#fff;cursor:pointer;transition:all .2s;min-width:280px}.notification:hover{transform:translate(-4px)}.notification-info,.notification-success{border-left:3px solid var(--primary-color)}.notification-warning{border-left:3px solid #ffaa00}.notification-error{border-left:3px solid #ff5555}.notification-rich,.notification-progress{min-width:320px;max-width:420px;padding:0;cursor:default;position:relative}.notification-progress-body{padding:14px 28px 14px 14px}.notification-progress-title{font-size:13px;font-weight:600;color:#fff;margin-bottom:4px;line-height:1.3}.notification-progress-text{font-size:12px;color:#aaa;line-height:1.4;word-break:break-word;margin-bottom:10px}.notification-progress-bar{height:8px;background:#1a1a1a;border:1px solid #333;border-radius:6px;overflow:hidden}.notification-progress-fill{height:100%;background:var(--primary-color);width:0%;transition:width .15s ease}.notification-progress-meta{margin-top:8px;font-size:12px;color:#ccc}.notification-close{position:absolute;top:6px;right:10px;background:none;border:none;color:#666;font-size:18px;cursor:pointer;padding:0 4px;line-height:1;z-index:1}.notification-close:hover{color:#fff}.notification-rich-body{display:flex;gap:12px;padding:14px 28px 14px 14px;align-items:flex-start}.notification-rich-image{width:48px;height:48px;border-radius:6px;object-fit:cover;flex-shrink:0;margin-top:2px}.notification-rich-content{flex:1;min-width:0}.notification-rich-title{font-size:13px;font-weight:600;color:#fff;margin-bottom:4px;line-height:1.3}.notification-rich-text{font-size:12px;color:#aaa;line-height:1.5;word-break:break-word}.notification-rich-actions{display:flex;gap:8px;padding:0 14px 14px;justify-content:flex-end}.notification-input{min-width:300px;max-width:420px;padding:0;cursor:default;position:relative}.notification-input-preview{padding:12px 28px 0 14px;font-size:12px;color:#aaa;line-height:1.4;word-break:break-word}.notification-input-row{display:flex;gap:8px;padding:10px 14px 14px;align-items:center}.notification-input-field{flex:1;min-width:0;padding:6px 10px;font-size:13px;background:#1a1a1a;border:1px solid #444;color:#fff;outline:none;font-family:inherit}.notification-input-field:focus{border-color:var(--primary-color)}.notification-input-field::placeholder{color:#666}.notification-action-btn{padding:5px 14px;font-size:12px;font-weight:500;background:var(--primary-color);color:#000;border:none;cursor:pointer;white-space:nowrap;font-family:inherit}.notification-action-btn:hover{opacity:.85}.notification-action-btn.danger{background:#f55;color:#fff}.notification-action-btn.secondary{background:#333;color:#ccc}.notification-action-btn.secondary:hover{background:#444}.link{color:var(--primary-color);text-decoration:none;border-bottom:1px solid var(--primary-color)}.link:hover{color:#fff;border-bottom-color:#fff}.skeleton{background:linear-gradient(90deg,#111 25%,var(--border-color) 50%,#111 75%);background-size:200% 100%;animation:skeleton-loading 1.5s ease-in-out infinite}@keyframes skeleton-loading{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton-text{display:flex;flex-direction:column;gap:8px}.skeleton-text-line{display:block}.skeleton-list{display:flex;flex-direction:column}.skeleton-list-item{width:100%}.skeleton-card{border:1px solid var(--border-color);overflow:hidden}.skeleton-chat-item{display:flex;align-items:center;padding:12px 16px;border-bottom:1px solid rgba(26,77,26,.3)}.offline-banner{position:fixed;top:0;left:0;right:0;background:#fa0;color:#000;padding:12px 24px;display:flex;align-items:center;justify-content:center;gap:12px;z-index:10000;font-weight:500;font-size:.9rem;font-family:JetBrains Mono,monospace}.offline-icon{font-size:1.2rem}.error-boundary-fallback{min-height:400px;display:flex;align-items:center;justify-content:center;padding:40px 24px}.error-boundary-content{text-align:center;max-width:500px;padding:32px;background:#0c0c0c;border:1px solid var(--border-color)}.error-boundary-title{color:#fa0;font-size:1.5rem;margin-bottom:16px}.error-boundary-message{color:#888;margin-bottom:24px;line-height:1.6}.error-boundary-details{text-align:left;margin-bottom:24px;padding:16px;background:#111;border:1px solid var(--border-color);font-size:.85rem}.error-boundary-details summary{color:var(--primary-color);cursor:pointer;margin-bottom:12px}.error-boundary-stack{color:#f55;white-space:pre-wrap;word-break:break-word;margin:0;padding:0}.error-boundary-reset-btn{background:var(--primary-color);color:#000;border:none;padding:12px 24px;font-weight:600;cursor:pointer;transition:background .2s}.error-boundary-reset-btn:hover{background:var(--primary-hover)}.color-picker-wrapper{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.color-picker{width:60px;height:40px;border:1px solid var(--border-color);background:transparent;cursor:pointer;padding:0}.color-picker::-webkit-color-swatch-wrapper{padding:0}.color-picker::-webkit-color-swatch{border:none}.color-preview{display:flex;align-items:center;gap:12px}.color-swatch{width:32px;height:32px;border:1px solid var(--border-color);display:inline-block}.color-value{color:#888;font-family:JetBrains Mono,monospace;font-size:.9rem}.btn-reset-color{background:transparent;border:1px solid var(--border-color);color:#888;padding:8px 16px;cursor:pointer;transition:all .2s;font-family:JetBrains Mono,monospace}.btn-reset-color:hover:not(:disabled){border-color:#0f0;color:#0f0}.btn-reset-color:disabled{opacity:.5;cursor:not-allowed}.theme-presets-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:8px;margin-top:8px}.theme-preset-btn{display:flex;align-items:center;gap:8px;padding:10px 12px;border:2px solid;background:transparent;cursor:pointer;font-size:.8rem;font-family:JetBrains Mono,monospace;transition:all .2s}.theme-preset-btn.is-selected{box-shadow:inset 0 -2px 0 currentColor}.theme-preset-btn:hover{transform:none;filter:brightness(1.15);background:color-mix(in srgb,currentColor 10%,transparent)}.theme-preset-check{margin-left:auto;font-size:.75rem;opacity:.9}.preset-color-dot{width:10px;height:10px;border-radius:0;flex-shrink:0}.relative{position:relative}.absolute{position:absolute}.fixed{position:fixed}.sticky{position:sticky}.text-center{text-align:center}.border{border:1px solid var(--border-color)}.visible{visibility:visible}.break-all{word-break:break-all}.skip-link{position:absolute;top:-100px;left:16px;z-index:10000;padding:10px 16px;background:var(--primary-color);color:#000;font-size:14px;font-weight:600;text-decoration:none;border:1px solid #000}.skip-link:focus{top:16px}button:focus:not(:focus-visible),a:focus:not(:focus-visible){outline:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.dashboard-card{width:70%;max-width:70%;margin:0 auto}.access-denied{text-align:center;padding:48px;background:#0c0c0c;border:1px solid var(--border-color)}.access-denied h3{color:#fff;margin-bottom:8px}.access-denied p{color:#666}.access-denied-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:20px}.access-denied-actions .btn{text-decoration:none}.mobile-dashboard{width:100%}.mobile-dashboard-content{padding-bottom:80px}.mobile-dashboard-nav{position:fixed;bottom:0;left:0;right:0;background:#0c0c0c;border-top:1px solid var(--border-color);display:flex;padding:8px 0;z-index:100;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.mobile-dashboard-nav::-webkit-scrollbar{display:none}.mobile-nav-item{flex:0 0 auto;min-width:64px;background:transparent;border:none;color:#888;padding:10px 6px;cursor:pointer;transition:all .2s;display:flex;flex-direction:column;align-items:center}.mobile-nav-item.active{color:var(--primary-color)}.mobile-nav-label{font-size:.65rem;margin-top:2px;white-space:nowrap}.settings-card{width:100%}.settings-container{display:grid;grid-template-columns:200px 1fr;gap:0;min-height:400px}.settings-nav{display:flex;flex-direction:column;background:#0a0a0a;border-right:1px solid var(--border-color);padding:20px 0;gap:2px}.settings-nav-item{padding:10px 20px;background:transparent;border:none;color:#888;font-size:13px;cursor:pointer;transition:all .2s;text-align:left;font-family:JetBrains Mono,monospace;border-left:0 solid var(--primary-color)}.settings-nav-item:hover{background:#111;color:#fff}.settings-nav-item.active{background:#00ff000d;color:var(--primary-color);border-left:3px solid var(--primary-color)}.settings-content{padding:24px}.settings-section{max-width:500px}.section-title{font-size:1.1rem;font-weight:600;color:#fff;margin:0 0 20px;padding-bottom:12px;border-bottom:1px solid var(--border-color)}.setting-field{margin-bottom:28px}.field-label{display:block;color:var(--primary-color);font-size:.8rem;font-weight:500;text-transform:uppercase;letter-spacing:.5px;margin-bottom:10px}.field-description{color:#666;font-size:.85rem;margin-bottom:12px}.avatar-upload{display:flex;align-items:center;gap:20px}.avatar-preview{width:80px;height:80px;border:2px solid var(--primary-color);object-fit:cover}.avatar-upload-controls{display:flex;flex-direction:column;gap:6px}.avatar-upload .file-input{display:none}.password-fields{display:flex;flex-direction:column;gap:10px}.password-input-wrapper{position:relative}.password-input-wrapper .input{width:100%;padding-right:44px}.password-input-wrapper .valid{border-color:#0c0}.password-input-wrapper .invalid{border-color:#f55}.password-hint{display:block;margin-top:4px;font-size:.7rem;color:#666}.password-hint.valid{color:#0c0}.password-hint.invalid{color:#f55}.avatar-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.avatar-header .field-label{margin-bottom:0}.avatar-settings-row{display:flex;gap:16px;align-items:flex-start}.avatar-preview-left{flex-shrink:0;display:flex;align-items:center}.avatar-preview-sm{width:auto;height:100px;aspect-ratio:1 / 1;object-fit:cover;border:2px solid var(--border-color)}.avatar-dropzone-small{flex:1;min-width:0}.avatar-actions{display:flex;gap:8px;margin-top:10px;justify-content:flex-end}.background-settings-block{display:flex;flex-direction:column;gap:12px}.background-settings-preview{width:100%;aspect-ratio:16 / 10;max-height:180px;border:1px solid var(--border-color);background-color:#0a0a0a;background-size:cover;background-position:center}.background-settings-preview.empty{display:flex;align-items:center;justify-content:center;color:#666;font-size:.82rem}.background-settings-privacy-hint{margin:0;color:#888;font-size:.78rem;line-height:1.35}.avatar-cancel{background:transparent;border:1px solid #888;color:#888;padding:6px 12px;cursor:pointer;font-size:.8rem;transition:all .2s}.avatar-cancel:hover{border-color:#f55;color:#f55}.username-row{display:flex;gap:12px;align-items:flex-start}.username-input-wrap{flex:1;min-width:0}.username-row .action-btn{flex-shrink:0;align-self:flex-start;margin-top:0}.password-input-container{position:relative}.password-input-container .input{padding-right:44px}.password-input-container .password-toggle-inline{position:absolute;right:8px;top:50%;transform:translateY(-50%);background:transparent;border:none;color:#666;cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center;transition:color .2s}.password-input-container .password-toggle-inline:hover{color:var(--primary-color)}.password-input-container .password-toggle-inline:disabled{opacity:.5;cursor:not-allowed}.password-input-container .password-toggle-inline svg{display:block}.avatar-preview-container{margin-bottom:12px;text-align:center}.avatar-preview{width:100px;height:100px;object-fit:cover;border:2px solid var(--primary-color);border-radius:0}.avatar-remove{background:transparent;border:1px solid #ff5555;color:#f55;padding:4px 12px;cursor:pointer;font-size:.75rem;transition:all .2s}.avatar-remove:hover{background:#ff55551a}.avatar-dropzone{border:2px dashed #333;padding:12px 24px;min-height:100px;display:flex;flex-direction:column;justify-content:center;text-align:center;cursor:pointer;transition:all .2s;background:#111;box-sizing:border-box}.avatar-dropzone:hover,.avatar-dropzone.drag-over{border-color:var(--primary-color);background:#00ff000d}.avatar-dropzone-text{color:#888;font-size:.85rem;margin-bottom:8px}.avatar-dropzone-hint{color:#555;font-size:.7rem}.setting-field .input.valid{border-color:#0c0}.setting-field .input.invalid{border-color:#f55}.setting-field .password-hint{display:block;margin-top:6px;font-size:.7rem;color:#666}.setting-field .password-hint.valid{color:#0c0}.setting-field .password-hint.invalid{color:#f55}.invites-list{display:flex;flex-direction:column;gap:12px}.invite-item{padding:16px;border:1px solid var(--border-color);background:#0c0c0c}.invite-item.expired{opacity:.5}.btn-derive-action{flex:1;padding:10px;background:transparent;border:1px solid var(--primary-color);color:var(--primary-color);font-weight:500;font-size:.9rem;cursor:pointer;font-family:JetBrains Mono,monospace;transition:all .2s;white-space:nowrap}.btn-derive-action:hover{background:var(--primary-color);color:#000}.btn-derive-action:disabled{opacity:.5;cursor:not-allowed}.dropdown-item-secondary{background:#00ff000d;border:1px solid rgba(0,255,0,.3)}.dropdown-item-secondary:hover{background:#00ff001a}@media(max-width:768px){.settings-container{flex-direction:column;gap:16px}.settings-nav{flex-direction:row;overflow-x:auto;min-width:0}.settings-nav-item{white-space:nowrap}.avatar-upload{flex-direction:column;align-items:center;text-align:center}}.profile-view{background:#0f0f0f;border:1px solid var(--border-color);overflow:hidden}.profile-header{position:relative;padding:24px;border-bottom:1px solid var(--border-color)}.profile-header-content{display:flex;align-items:center;gap:20px}.profile-avatar{width:80px;height:80px;background:#1a1a1a;border:2px solid var(--border-color);overflow:hidden;flex-shrink:0}.profile-avatar img{width:100%;height:100%;object-fit:cover}.avatar-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:#666;font-size:2em;font-weight:700}.profile-info{flex:1}.profile-name{font-size:1.3em;font-weight:600;color:#fff;margin-bottom:8px}.profile-badge{display:inline-block;padding:4px 10px;font-size:.75em;text-transform:uppercase;letter-spacing:.5px;color:#888;border:1px solid #333}.profile-badge.active{color:var(--primary-color);border-color:var(--primary-color)}.profile-body{padding:24px}.profile-meta{display:flex;flex-direction:column;gap:16px}.profile-meta-item{display:flex;align-items:center;gap:8px;padding:8px 12px;background:#0a0a0a;border:1px solid #1a1a1a;color:#888;font-size:.85em}.profile-meta-label{color:#666;font-size:.8em;text-transform:uppercase;letter-spacing:.5px}.profile-meta-value{color:#ccc;font-family:JetBrains Mono,monospace;font-size:.85em;word-break:break-all}.profile-uuid{color:#555;font-family:JetBrains Mono,monospace;font-size:.8em;padding:6px 12px;background:#0a0a0a;border:1px solid #1a1a1a;word-break:break-all;display:inline-block}.page-container{width:min(920px,92%);max-width:920px;padding:28px 0 48px;min-height:calc(100vh - 120px);display:flex;flex-direction:column;justify-content:flex-start;align-items:stretch;margin:0 auto}.page-container>*{width:100%}.page-container.article-page{width:min(1100px,94%);max-width:1100px;padding:20px 0 64px;gap:16px}.article-page-skeleton{gap:20px}.article-page-skeleton-meta{margin-top:4px}.article-page-skeleton-body{margin-top:8px}.article-topbar{display:flex;align-items:center;justify-content:flex-start;gap:12px}.article-topbar-back{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid rgba(255,255,255,.1);background:#0a0a0ab8;color:#aaa;font:inherit;font-size:.82rem;cursor:pointer;transition:color .15s ease,border-color .15s ease,background .15s ease}.article-topbar-back:hover{color:var(--primary-color);border-color:color-mix(in srgb,var(--primary-color) 45%,transparent)}.article-shell,.article-page-card{width:100%;max-width:none;padding:0;background:#0a0a0a;border:1px solid rgba(255,255,255,.08);overflow:hidden;animation:article-shell-in .35s ease both}.article-shell-encrypted{border-color:#ffc1072e}@keyframes article-shell-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.article-cover,.article-cover-banner{position:relative;width:100%;aspect-ratio:2.2 / 1;max-height:320px;overflow:hidden;background:#050505}.article-cover-img,.article-cover-banner-img{display:block;width:100%;height:100%;object-fit:cover}.article-cover-img--openable{cursor:zoom-in}.article-cover-fade{position:absolute;inset:auto 0 0;height:55%;background:linear-gradient(180deg,transparent 0%,#0a0a0a 92%);pointer-events:none}.article-header,.article-hero{padding:28px 32px 20px}.article-header-over-cover{margin-top:-48px;position:relative;z-index:1;padding-top:0}.article-lock-badge{display:inline-flex;align-items:center;gap:6px;margin-bottom:12px;padding:4px 9px;border:1px solid rgba(255,193,7,.3);background:#ffc10714;color:#ffc107;font-size:.72rem;font-family:JetBrains Mono,monospace;letter-spacing:.02em}.article-title{font-size:clamp(1.65rem,3.4vw,2.4rem);color:#f5f5f5;margin:0 0 14px;line-height:1.18;font-weight:700;letter-spacing:-.03em;text-wrap:balance}.article-meta-line{display:flex;flex-wrap:wrap;align-items:center;gap:6px 0;margin:0;color:#777;font-size:.8rem;line-height:1.5;min-width:0;flex:1}.article-meta-line>span:not(.article-meta-sep){color:#999}.article-meta-sep{margin:0 8px;color:#444}.article-header-meta{display:flex;align-items:flex-start;justify-content:space-between;gap:12px 16px;flex-wrap:wrap}.article-share-btn{display:inline-flex;align-items:center;gap:6px;flex-shrink:0;margin-left:auto;padding:4px 0;border:none;background:transparent;color:#777;font:inherit;font-size:.78rem;cursor:pointer;transition:color .15s ease}.article-share-btn:hover{color:var(--primary-color)}.article-status-bar{display:flex;gap:8px;margin-bottom:14px;flex-wrap:wrap}.article-meta-grid{display:none}.article-body,.article-page-card>.article-content{padding:8px 32px 36px;font-size:1.05rem;line-height:1.8;max-width:100%}.article-shell-with-cover .article-body{padding-top:4px}.article-footer{margin-top:0;padding:16px 32px 20px;border-top:1px solid rgba(255,255,255,.06);background:#0003;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.article-footer-actions{display:flex;flex-wrap:wrap;gap:10px;margin-left:auto}.article-footer-actions .btn{display:inline-flex;align-items:center;gap:8px}.article-uuid-btn{display:inline-flex;align-items:center;gap:10px;min-width:0;max-width:min(100%,420px);padding:0;border:none;background:transparent;color:#666;font:inherit;cursor:pointer;transition:color .15s ease}.article-uuid-btn:hover{color:var(--primary-color)}.article-uuid-label{flex-shrink:0;font-size:.68rem;letter-spacing:.06em;text-transform:uppercase;color:#555}.article-uuid-btn:hover .article-uuid-label{color:inherit}.article-uuid-value{font-family:JetBrains Mono,monospace;font-size:.72rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#777}.article-uuid-btn:hover .article-uuid-value{color:inherit}.article-state{display:flex;flex-direction:column;align-items:flex-start;gap:12px;padding:48px 32px;background:#0a0a0a;border:1px solid rgba(255,255,255,.08)}.article-state-title{margin:0;color:#fff;font-size:1.35rem;font-weight:600}.article-state-text{margin:0 0 8px;color:#888;font-size:.95rem}.article-locked,.article-locked-body{display:flex;flex-direction:column;align-items:flex-start;gap:12px;padding:28px 0 12px;min-height:180px}.article-locked-icon{display:flex;align-items:center;justify-content:center;width:48px;height:48px;border:1px solid rgba(255,193,7,.35);color:#ffc107;background:#ffc10714}.article-locked-icon svg{width:20px;height:20px}.article-locked-title{margin:0;color:#fff;font-size:1.2rem;font-weight:600}.article-locked-text{margin:0;color:#888;font-size:.92rem;line-height:1.55;max-width:42ch}.article-locked-error{margin:0;color:#f88;font-size:.85rem}.article-locked .btn{display:inline-flex;align-items:center;gap:8px;margin-top:4px}.article-content{line-height:1.8;color:#cfcfcf;font-size:1.02rem}.article-content p{margin:0 0 1.15em}.article-content a{color:var(--primary-color);text-decoration:underline;text-underline-offset:2px;cursor:pointer}.article-content a:hover{color:var(--primary-hover)}.article-content img,.article-content .article-content-img{max-width:100%;border:1px solid var(--border-color);margin:16px 0;cursor:zoom-in}.article-content img:focus-visible{outline:2px solid var(--primary-color);outline-offset:2px}.article-content code{background:#111;padding:2px 6px;font-family:JetBrains Mono,monospace;font-size:.86em;color:var(--primary-color)}.article-content pre{background:#111;border:1px solid var(--border-color);padding:0;overflow-x:auto;margin:18px 0}.article-content pre code{background:transparent;padding:16px;display:block;font-family:JetBrains Mono,monospace;font-size:.86rem;line-height:1.55;color:#ccc}.article-content blockquote{border-left:3px solid var(--primary-color);padding:4px 0 4px 16px;margin:18px 0;color:#999}.article-content ul,.article-content ol{padding-left:1.35em;margin:0 0 1.15em}.article-content li{margin-bottom:.4em}.article-content h1,.article-content h2,.article-content h3{color:#eee;margin:1.6em 0 .55em;line-height:1.25;letter-spacing:-.02em}.article-content h1{font-size:1.55rem}.article-content h2{font-size:1.3rem}.article-content h3{font-size:1.12rem;color:#ddd}.article-content hr{border:none;border-top:1px solid rgba(255,255,255,.08);margin:2em 0}.article-key-inline{display:inline-block;padding:2px 8px;background:#111;border:1px solid var(--primary-color);color:var(--primary-color);font-family:JetBrains Mono,monospace;font-size:.85rem;letter-spacing:2px;cursor:context-menu;-webkit-user-select:none;user-select:none}.article-context-menu{position:fixed;background:#0c0c0c;border:1px solid var(--border-color);box-shadow:0 10px 30px #00000080;z-index:2000;min-width:180px}.dropdown-item{display:block;width:100%;background:transparent;border:none;color:#fff;padding:8px 16px;text-align:left;cursor:pointer;font-size:.9rem;transition:background .2s}.dropdown-item:hover{background:var(--border-color);color:var(--primary-color)}@media(max-width:768px){.page-container{width:100%;max-width:none;padding:12px 12px 40px}.page-container.article-page{gap:12px}.article-topbar-back span{display:none}.article-topbar-back{padding:9px 10px}.article-header,.article-hero{padding:20px 18px 16px}.article-header-over-cover{margin-top:-36px}.article-header-meta{flex-direction:column;align-items:stretch;gap:10px}.article-share-btn{margin-left:0;align-self:flex-start}.article-body,.article-page-card>.article-content{padding:4px 18px 28px}.article-footer{padding:14px 18px 16px;flex-direction:column;align-items:stretch}.article-footer-actions{margin-left:0;width:100%}.article-footer-actions .btn{flex:1;justify-content:center}.article-uuid-btn{max-width:100%}.article-cover,.article-cover-banner{max-height:200px;aspect-ratio:16 / 9}.article-state{padding:32px 20px}.article-title{font-size:1.55rem}}@media(prefers-reduced-motion:reduce){.article-shell,.article-page-card{animation:none}}.messenger-container{display:flex;gap:20px;height:calc(100vh - 250px);min-height:500px}.chat-list-panel{width:320px;border-right:1px solid var(--border-color);display:flex;flex-direction:column;min-height:0;background:#0a0a0a}.chat-list-header{display:flex;justify-content:space-between;align-items:center;padding:16px;border-bottom:1px solid var(--border-color)}.messenger-sidebar-top{padding:16px;border-bottom:1px solid var(--border-color);display:flex;flex-direction:column;gap:10px;flex-shrink:0}.messenger-sidebar-title{margin:0;font-size:.85em;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:#888}.messenger-tabs{display:flex;gap:4px}.messenger-tab-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:8px 10px;background:transparent;border:1px solid transparent;color:#888;font-size:12px;cursor:pointer;transition:all .2s}.messenger-tab-btn:hover{background:#111;color:#ccc}.messenger-tab-btn.active{background:#111;border-color:var(--border-color);color:#fff}.messenger-tab-badge{background:var(--primary-color);color:#000;font-size:10px;font-weight:700;padding:1px 5px;min-width:16px}.messenger-list-search{width:100%;padding:8px 12px;background:#0f0f0f;border:1px solid #1a1a1a;color:#fff;font-size:13px;outline:none;height:36px;box-sizing:border-box}.messenger-list-search:focus{border-color:var(--primary-color)}.messenger-sidebar-actions{display:flex;gap:8px}.messenger-refresh-btn{width:40px;min-width:40px;padding:8px;background:#0f0f0f;border:1px solid #1a1a1a;color:#888;display:flex;align-items:center;justify-content:center}.messenger-refresh-btn:hover:not(:disabled){border-color:#444;color:#ccc}.messenger-new-chat-btn{flex:1;font-size:12px;padding:8px 12px}.messenger-empty{text-align:center;padding:32px 16px;color:#666;display:flex;flex-direction:column;align-items:center;gap:12px}.messenger-empty-hint{font-size:12px;color:#555;margin:0}.messenger-transport-bar{display:flex;align-items:center;gap:8px;padding:10px 16px;border-top:1px solid var(--border-color);margin-top:auto;flex-shrink:0}.messenger-transport-dot{width:8px;height:8px;border-radius:50%;background:#666}.messenger-transport-dot.ws{background:var(--primary-color)}.messenger-transport-label{font-size:11px;color:#666;flex:1}.messenger-transport-switch{background:none;border:none;color:#888;font-size:11px;cursor:pointer;padding:0;text-decoration:underline;font-family:inherit}.messenger-transport-switch:hover{color:var(--primary-color)}.chat-uuid-line{font-size:10px;font-family:JetBrains Mono,monospace;color:#444;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}.chat-uuid-line:hover{color:var(--primary-color)}.chat-status-line.status-active{color:#3c3}.chat-avatar-secret span{font-size:.75rem;font-weight:700}.chat-placeholder p{margin:0}.chat-placeholder .messenger-empty-hint{margin-top:8px}.messenger-modal{width:min(440px,100%);padding:0;overflow:hidden}.messenger-modal-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--border-color)}.messenger-modal-header h2{margin:0;font-size:1.1rem;color:#fff}.messenger-modal-close{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:transparent;border:1px solid #333;color:#888;cursor:pointer;font-size:1.2rem;line-height:1}.messenger-modal-close:hover{color:#fff;border-color:#666}.messenger-modal-body{padding:16px 20px;max-height:60vh;overflow-y:auto}.messenger-modal-label{display:block;margin-bottom:6px;font-size:11px;color:#888;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.messenger-modal-type-row{margin-bottom:14px}.messenger-chat-type-toggle{display:flex;gap:6px}.messenger-type-btn{flex:1;padding:8px;font-size:12px;background:#0a0a0a;border:1px solid #444;color:#aaa;cursor:pointer}.messenger-type-btn.active{background:var(--primary-color);border-color:var(--primary-color);color:#000;font-weight:600}.messenger-modal-input{width:100%;height:40px;padding:0 12px;margin-bottom:14px;font-size:14px;background:#0a0a0a;border:1px solid #444;color:#fff;box-sizing:border-box;outline:none}.messenger-modal-input:focus{border-color:var(--primary-color)}.messenger-modal-search-hint{display:flex;align-items:center;gap:8px;font-size:12px;color:#666;margin-bottom:8px}.messenger-user-pick-list{max-height:180px;overflow-y:auto;border:1px solid #333;margin-bottom:8px}.messenger-user-pick{display:flex;align-items:center;gap:10px;padding:8px 10px;cursor:pointer;border-bottom:1px solid #222}.messenger-user-pick:hover{background:#111}.messenger-user-pick-avatar{width:32px;height:32px;flex-shrink:0;border:1px solid #333;overflow:hidden;display:flex;align-items:center;justify-content:center;font-size:11px;color:#888}.messenger-user-pick-avatar img{width:100%;height:100%;object-fit:cover}.messenger-user-pick-name{font-weight:600;font-size:13px;color:#fff}.messenger-user-pick-uuid{font-size:11px;color:#555;overflow:hidden;text-overflow:ellipsis}.messenger-modal-empty{padding:12px;text-align:center;color:#666;font-size:12px;border:1px solid #333;margin-bottom:8px}.messenger-modal-footer{display:flex;gap:8px;padding:12px 20px 16px;border-top:1px solid var(--border-color)}.messenger-modal-footer .btn{flex:1;font-size:12px}.messenger-create-chat-modal{width:min(480px,100%)}.messenger-create-mode-toggle .messenger-type-btn{font-size:11px;padding:8px 6px}.messenger-user-pick.selected{background:#ffffff0a;border-left:2px solid var(--primary-color)}.messenger-user-pick-check{margin-left:auto;color:var(--primary-color);font-size:14px;flex-shrink:0}.messenger-selected-chips{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 12px}.messenger-selected-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 8px;font-size:12px;color:#ddd;background:#111;border:1px solid #444;cursor:pointer}.messenger-selected-chip:hover{border-color:#888;color:#fff}.messenger-avatar-upload{display:flex;align-items:center;justify-content:center;min-height:40px;margin-bottom:8px;padding:0 12px;font-size:13px;color:#aaa;background:#0a0a0a;border:1px dashed #444;cursor:pointer}.messenger-avatar-upload:hover{border-color:var(--primary-color);color:#fff}.messenger-avatar-clear{display:block;margin:0;padding:0;font-size:12px;color:#888;background:none;border:none;cursor:pointer;text-align:left}.messenger-avatar-clear:hover{color:#fff}.messenger-chat-avatar-field{margin-top:4px}.messenger-chat-avatar-header{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}.messenger-chat-avatar-header .messenger-modal-label{margin-bottom:0}.messenger-chat-avatar-dropzone{border:2px dashed #2a2a2a;padding:16px;text-align:center;cursor:pointer;transition:border-color .2s,background .2s;background:#0a0a0a;margin-bottom:8px}.messenger-chat-avatar-dropzone:hover,.messenger-chat-avatar-dropzone.drag-over{border-color:var(--primary-color);background:#00ff0008}.messenger-chat-avatar-dropzone-text{color:#888;font-size:.85rem;margin:0 0 8px}.messenger-chat-avatar-dropzone-hint{color:#555;font-size:.75rem;margin:0}.messenger-chat-avatar-result{display:flex;flex-direction:column;gap:10px;align-items:center;margin-bottom:8px}.messenger-chat-avatar-preview{width:96px;height:96px;object-fit:cover;border:2px solid var(--primary-color);display:block}.messenger-chat-avatar-edit{padding:6px 12px;font-size:12px;color:#ddd;background:#111;border:1px solid #444;cursor:pointer}.messenger-chat-avatar-edit:hover:not(:disabled){border-color:var(--primary-color);color:#fff}.messenger-chat-avatar-edit:disabled{opacity:.5;cursor:default}.messenger-crop-editor-overlay{z-index:1100}.chat-header-meta{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.chat-header-uuid{font-size:10px;font-family:JetBrains Mono,monospace;color:#555;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-header-uuid:hover{color:var(--primary-color)}.chat-header-badge{font-size:10px;color:var(--primary-color);text-transform:uppercase;letter-spacing:.5px}.chat-list{flex:1;overflow-y:auto}.chat-item{display:flex;align-items:center;gap:12px;padding:12px 16px;cursor:pointer;transition:background .2s;border-bottom:1px solid rgba(26,77,26,.3);width:100%;text-align:left;border-left:none;border-right:none;border-top:none;background:transparent;font-family:inherit;color:inherit}.chat-item:hover{background:#00ff000d}.chat-item.active{background:#00ff001a}.chat-avatar{width:40px;height:40px;border:1px solid var(--primary-color);display:flex;align-items:center;justify-content:center;flex-shrink:0}.chat-avatar img{width:100%;height:100%;object-fit:cover}.chat-avatar span{color:var(--primary-color);font-weight:600}.chat-info{flex:1;min-width:0}.chat-name{color:#fff;font-weight:500;margin-bottom:4px}.chat-preview{color:#666;font-size:.85rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-badge{background:var(--primary-color);color:#000;font-size:.75rem;font-weight:600;padding:2px 8px;min-width:20px;text-align:center}.chat-window-panel{flex:1;display:flex;flex-direction:column;min-height:0;border:1px solid var(--border-color);background:#080808}.chat-window{display:flex;flex-direction:column;height:100%;min-height:0;background:#080808}.chat-header{display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid var(--border-color);flex-shrink:0;background:#0a0a0a}.chat-header-action-btn{width:36px;height:36px;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:#0f0f0f;border:1px solid #1a1a1a;color:#888;cursor:pointer;font-size:1rem;transition:all .2s}.chat-header-action-btn:hover:not(:disabled){border-color:#444;color:var(--primary-color)}.chat-header-action-btn:disabled{opacity:.5;cursor:not-allowed}.btn-back{background:transparent;border:1px solid var(--border-color);color:var(--primary-color);width:36px;height:36px;cursor:pointer;font-size:1.2rem;transition:all .2s}.btn-back:hover{background:var(--border-color)}.chat-avatar-small{width:32px;height:32px;border:1px solid var(--primary-color);display:flex;align-items:center;justify-content:center;flex-shrink:0}.chat-avatar-small img{width:100%;height:100%;object-fit:cover}.chat-avatar-small span{color:var(--primary-color);font-weight:600}.chat-title{color:#fff;font-weight:500}.chat-messages-wrap{flex:1;min-height:0;position:relative;display:flex;flex-direction:column}.messages-container{flex:1;overflow-y:auto;padding:16px 20px;min-height:0}.messages-list{display:flex;flex-direction:column;gap:8px}.messages-scroll-anchor{height:1px}.chat-messages-loading{padding:8px 0}.chat-messages-empty{text-align:center;padding:48px 24px;color:#666}.chat-messages-empty p{margin:0}.chat-messages-empty-hint{margin-top:8px!important;font-size:12px;color:#555}.chat-load-more-row{display:flex;justify-content:center;padding:8px 0 16px}.chat-load-more-btn{background:#0f0f0f;border:1px solid #333;color:#888;font-size:11px;padding:6px 14px;cursor:pointer;font-family:inherit}.chat-load-more-btn:hover{border-color:var(--primary-color);color:var(--primary-color)}.chat-scroll-down-btn{position:absolute;right:20px;bottom:16px;width:36px;height:36px;border-radius:0;background:#111;border:1px solid var(--primary-color);color:var(--primary-color);cursor:pointer;font-size:1rem;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px #0006;z-index:5}.chat-scroll-down-btn:hover{background:#00ff001a}.message-bubble{max-width:min(75%,520px);padding:10px 14px;border:1px solid #1a1a1a;border-radius:2px;position:relative}.message-bubble.own{align-self:flex-end;background:#00ff0014;border-color:#00ff0059}.message-bubble.incoming{align-self:flex-start;background:#0f0f0f}.message-bubble .message-sender{color:var(--primary-color);font-size:11px;font-weight:600;margin-bottom:4px;opacity:.85}.message-bubble .message-content{color:#e8e8e8;font-size:14px;line-height:1.45;word-break:break-word;white-space:pre-wrap}.message-bubble .message-time{color:#555;font-size:10px;text-align:right;margin-top:6px}.message-date-divider{display:flex;align-items:center;justify-content:center;padding:12px 0}.message-date-divider span{background:#111;border:1px solid #222;padding:4px 12px;font-size:11px;color:#666}.message-file-block{display:flex;flex-direction:column;gap:8px}.message-file-image-link,.message-file-image-btn{display:block;line-height:0;padding:0;margin:0;border:none;background:none;cursor:zoom-in;text-align:left;max-width:100%}.message-file-meta{display:flex;flex-wrap:wrap;gap:6px;align-items:baseline}.message-file-name{font-size:13px;color:#ccc}.message-file-size{font-size:11px;color:#666}.message-input-form{padding:12px 16px 10px;border-top:1px solid var(--border-color);flex-shrink:0;background:#0a0a0a}.message-input-form.is-sending{opacity:.85}.message-input-row{display:flex;gap:8px;align-items:flex-end}.message-file-input-hidden{display:none}.message-input-banner{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;margin-bottom:8px;font-size:12px;border:1px solid #333;background:#0f0f0f}.message-input-banner-error{color:#f66;border-color:#522}.message-input-hint{margin:6px 0 0;font-size:10px;color:#444;text-align:center}.message-file-btn{background:#0f0f0f;border:1px solid #333;color:#888;cursor:pointer;padding:0;flex-shrink:0;width:40px;height:40px;display:flex;align-items:center;justify-content:center;transition:all .2s}.message-file-btn:hover:not(:disabled){border-color:var(--primary-color);color:var(--primary-color)}.message-file-btn:disabled{opacity:.4;cursor:not-allowed}.message-file-preview{display:flex;align-items:center;gap:8px;padding:6px 10px;border:1px solid #444;margin-bottom:6px;background:#0a0a0a}.message-file-img{width:36px;height:36px;object-fit:cover;flex-shrink:0}.message-file-ext{width:36px;height:36px;display:flex;align-items:center;justify-content:center;font-size:10px;color:#888;border:1px solid #555;flex-shrink:0}.message-file-name{flex:1;font-size:12px;color:#aaa;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.message-file-clear{background:none;border:none;color:#666;cursor:pointer;font-size:14px;padding:0 4px;font-family:JetBrains Mono,monospace}.message-file-clear:hover{color:#fff}.message-file-display{font-size:12px;color:#aaa;margin-bottom:4px}.message-file-image{max-width:240px;max-height:240px;display:block;margin-bottom:4px}.message-file-download{display:inline-flex;align-items:center;gap:6px;background:none;border:1px solid #444;color:#aaa;cursor:pointer;font-size:11px;padding:4px 10px;font-family:JetBrains Mono,monospace;align-self:flex-start}.message-file-download:hover{border-color:var(--primary-color);color:var(--primary-color)}.message-input{flex:1;background:#0f0f0f;border:1px solid #1a1a1a;padding:10px 14px;color:#fff;font-size:14px;outline:none;font-family:JetBrains Mono,monospace;min-height:40px;max-height:120px;resize:none;line-height:1.4;box-sizing:border-box}.message-input-textarea{overflow-y:auto}.message-input:focus{border-color:var(--primary-color)}.message-input:disabled{opacity:.5}.btn-send{background:transparent;border:1px solid var(--primary-color);color:var(--primary-color);width:40px;height:40px;flex-shrink:0;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.btn-send:hover:not(:disabled){background:var(--primary-color);color:#000}.btn-send:disabled{opacity:.35;cursor:not-allowed;border-color:#333;color:#555}.chat-placeholder{flex:1;display:flex;align-items:center;justify-content:center;color:#666}.modal-content input{width:100%;margin-bottom:16px}@media(max-width:768px){.messenger-container{flex-direction:column;height:calc(100vh - 160px);min-height:420px}.chat-list-panel{width:100%;border-right:none;border-bottom:none;flex:1;min-height:0;height:auto}.chat-window-panel{flex:1;min-height:0;height:auto}.messenger-container:not(.messenger-chat-open) .chat-window-panel{display:none}.messenger-container.messenger-chat-open .chat-list-panel{display:none}.btn-back{display:flex;align-items:center;justify-content:center}}.message-bubble.pending{opacity:.75}.message-bubble.failed{opacity:.9;border-color:#522!important}.message-bubble.failed .message-time{color:#f66;display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.message-bubble.deleted .message-content{font-style:italic;color:#777}.message-deleted-label{color:#777}.message-edited-label{opacity:.7;margin-right:4px}.message-actions{display:inline-flex;gap:4px;margin-left:6px;opacity:0;transition:opacity .15s}.message-bubble:hover .message-actions,.message-bubble:focus-within .message-actions{opacity:1}.message-action-btn{background:none;border:none;color:#888;cursor:pointer;font-size:12px;line-height:1;padding:0 2px;font-family:inherit}.message-action-btn:hover{color:var(--primary-color)}.message-input-banner-edit{color:#ccc;border-color:#00ff0040;background:#00ff000f}.message-retry-btn{background:none;border:none;color:var(--primary-color);cursor:pointer;font-size:10px;padding:0;text-decoration:underline;font-family:inherit}.message-retry-btn:hover{color:#fff}.message-retry-hint{color:#888;font-size:10px}@media(min-width:769px){.btn-back{display:none}}.file-share-card{display:block;max-width:280px;border:1px solid var(--border-color);background:#0a0a0a;text-decoration:none;color:inherit;overflow:hidden;transition:border-color .2s}.file-share-card:hover{border-color:var(--primary-color)}.file-share-card-media{position:relative;width:100%;max-height:160px;background:#111;display:flex;align-items:center;justify-content:center;overflow:hidden}.file-share-card-media-loading{padding:24px}.file-share-card-image{width:100%;max-height:160px;object-fit:cover;display:block}.file-share-card-image--openable{cursor:zoom-in}.file-share-card-media-placeholder,.file-share-card-media-locked{padding:20px;color:#666;font-size:.8rem;text-align:center;display:flex;flex-direction:column;align-items:center;gap:8px;width:100%}.file-share-card-body{padding:10px 12px;border-top:1px solid var(--border-color)}.file-share-card-site{font-size:.65rem;text-transform:uppercase;letter-spacing:.4px;color:#555;margin-bottom:4px}.file-share-card-title{font-size:.9rem;color:#fff;font-weight:500;margin-bottom:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-share-card-desc{font-size:.75rem;color:#888;margin-bottom:4px}.file-share-card-url{font-size:.7rem;color:#555;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.message-storage-btn{flex-shrink:0}@font-face{font-family:JetBrains Mono;src:url(/assets/JetBrainsMono-Thin-BhSco1Ve.woff2) format("woff2");font-weight:100;font-style:normal;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/assets/JetBrainsMono-ThinItalic-CYUYT2s8.woff2) format("woff2");font-weight:100;font-style:italic;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/assets/JetBrainsMono-ExtraLight-C7N-6bva.woff2) format("woff2");font-weight:200;font-style:normal;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/assets/JetBrainsMono-ExtraLightItalic-DddGSQ2K.woff2) format("woff2");font-weight:200;font-style:italic;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/assets/JetBrainsMono-Light-Bgq2Dg64.woff2) format("woff2");font-weight:300;font-style:normal;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/assets/JetBrainsMono-LightItalic-Pc6KfEyb.woff2) format("woff2");font-weight:300;font-style:italic;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/assets/JetBrainsMono-Regular-BQaDgvhP.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/assets/JetBrainsMono-Italic-CFFf43z2.woff2) format("woff2");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/assets/JetBrainsMono-Medium-3S3k2nMz.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/assets/JetBrainsMono-MediumItalic-BKKs7F3t.woff2) format("woff2");font-weight:500;font-style:italic;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/assets/JetBrainsMono-SemiBold-BM8Dc2t-.woff2) format("woff2");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/assets/JetBrainsMono-SemiBoldItalic-CekZ8Kac.woff2) format("woff2");font-weight:600;font-style:italic;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/assets/JetBrainsMono-Bold-D4WEaHbo.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/assets/JetBrainsMono-BoldItalic-1xQg2cDl.woff2) format("woff2");font-weight:700;font-style:italic;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/assets/JetBrainsMono-ExtraBold-D7I5JnSP.woff2) format("woff2");font-weight:800;font-style:normal;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/assets/JetBrainsMono-ExtraBoldItalic-C6RSiIdH.woff2) format("woff2");font-weight:800;font-style:italic;font-display:swap}.glossary-modal{background:#0c0c0c;border:1px solid var(--border-color);width:min(800px,90vw);max-height:80vh;display:flex;flex-direction:column;position:relative}.glossary-modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid #1a1a1a}.glossary-modal-header h2{margin:0;font-size:15px;font-weight:600;color:#fff}.glossary-modal-body{display:grid;grid-template-columns:180px 1fr;flex:1;min-height:0;overflow:hidden}.glossary-modal-sidebar{background:#0a0a0a;border-right:1px solid #1a1a1a;padding:14px;display:flex;flex-direction:column;gap:12px;overflow-y:auto}.glossary-modal-search{width:100%;padding:7px 10px;background:#0f0f0f;border:1px solid #1a1a1a;color:#fff;font-size:12px;outline:none;box-sizing:border-box;height:32px}.glossary-modal-search:focus{border-color:var(--primary-color)}.glossary-modal-categories{display:flex;flex-direction:column;gap:2px;flex:1}.glossary-category-btn{display:flex;align-items:center;justify-content:space-between;padding:8px 10px;background:transparent;border:1px solid transparent;color:#888;font-size:12px;text-align:left;cursor:pointer;transition:all .15s}.glossary-category-btn:hover{background:#111;color:#fff}.glossary-category-btn.active{background:#111;border-color:var(--border-color);color:#fff}.glossary-category-count{font-size:10px;color:#555;min-width:16px;text-align:right}.glossary-category-btn.active .glossary-category-count{color:var(--primary-color)}.glossary-modal-count{font-size:11px;color:#666;margin-top:auto;padding-top:8px}.glossary-modal-terms{padding:14px;overflow-y:auto}.glossary-modal-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;min-height:200px;color:#666}.glossary-terms-list{display:flex;flex-direction:column;gap:8px}.glossary-term-card{padding:12px 14px;background:#0e0e0e;border:1px solid var(--border-color);cursor:pointer;transition:border-color .15s,background .15s}.glossary-term-card:hover{border-color:#333;background:#101010}.glossary-term-card.active{border-color:var(--primary-color);background:#00ff0008}.glossary-term-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:6px}.glossary-term-title{margin:0;font-size:.9rem;font-weight:600;color:#eee}.glossary-term-category{flex-shrink:0;font-size:.65rem;color:#666;padding:1px 6px;border:1px solid #222;background:#111;white-space:nowrap}.glossary-term-aliases{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:8px}.glossary-alias-tag{font-size:.65rem;color:#777;padding:1px 6px;border:1px dashed #333}.glossary-term-definition{margin:0;font-size:.8rem;color:#aaa;line-height:1.5}.glossary-term-related{margin-top:10px;padding-top:10px;border-top:1px solid #1a1a1a;display:flex;flex-wrap:wrap;align-items:center;gap:6px}.glossary-related-label{font-size:.7rem;color:#555}.glossary-related-links{display:flex;flex-wrap:wrap;gap:4px}.glossary-related-btn{padding:2px 8px;font-size:.7rem;background:transparent;border:1px solid var(--border-color);color:var(--primary-color);cursor:pointer;transition:all .15s}.glossary-related-btn:hover{border-color:var(--primary-color);background:#00ff000d}.avatar-media{display:block;width:100%;height:100%;object-fit:cover}.user-avatar .avatar-media,.chat-avatar .avatar-media,.chat-avatar-small .avatar-media,.profile-card-avatar .avatar-media,.profile-avatar .avatar-media,.member-avatar .avatar-media,.invite-avatar .avatar-media,.friend-avatar .avatar-media,.messenger-user-pick-avatar .avatar-media{width:100%;height:100%;object-fit:cover}.notification-bell-wrap{position:relative;display:inline-flex;align-items:center}.notification-bell-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;border:1px solid var(--border-color, #333);background:transparent;color:var(--text-secondary, #aaa);cursor:pointer;transition:color .15s ease,border-color .15s ease,background .15s ease}.notification-bell-btn:hover,.notification-bell-btn.is-open{color:var(--primary-color, #0f0);border-color:var(--primary-color, #0f0);background:#00ff000f}.notification-bell-icon{display:block}.notification-bell-badge{position:absolute;top:-5px;right:-5px;min-width:16px;height:16px;padding:0 4px;border-radius:8px;background:var(--primary-color, #0f0);color:#000;font-size:.65rem;font-weight:700;line-height:16px;text-align:center;font-family:JetBrains Mono,ui-monospace,monospace}.notifications-panel{position:fixed;width:min(300px,calc(100vw - 24px));display:flex;flex-direction:column;overflow:hidden;background:#0c0c0c;border:1px solid var(--border-color, #333);z-index:400;animation:notificationsPanelIn .18s ease-out;box-shadow:0 12px 32px #00000073}@keyframes notificationsPanelIn{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.notifications-panel-header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;border-bottom:1px solid var(--border-color, #333);flex-shrink:0}.notifications-panel-title{font-size:.85rem;font-weight:600;color:#fff}.notifications-panel-header-actions{display:flex;gap:4px;align-items:center;flex-shrink:0}.notifications-panel-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;background:transparent;border:1px solid transparent;color:#888;cursor:pointer}.notifications-panel-icon-btn:hover:not(:disabled){color:var(--primary-color, #0f0);border-color:var(--border-color, #333)}.notifications-panel-icon-btn:disabled{opacity:.45;cursor:default}.notifications-panel-icon-btn.is-spinning svg{animation:notificationsRefreshSpin .8s linear infinite}@keyframes notificationsRefreshSpin{to{transform:rotate(360deg)}}.notifications-panel-text-btn{background:transparent;border:none;color:var(--primary-color, #0f0);font-size:.72rem;cursor:pointer;padding:2px 4px;font-family:inherit}.notifications-panel-text-btn:hover:not(:disabled){text-decoration:underline}.notifications-panel-text-btn:disabled{opacity:.45;cursor:default}.notifications-panel-body{overflow-y:auto;flex:1 1 auto;min-height:0}.notifications-panel-state{margin:0;padding:24px 16px;text-align:center;color:#888;font-size:.85rem}.notifications-item{display:flex;align-items:stretch;border-bottom:1px solid rgba(255,255,255,.06)}.notifications-item.is-unread{background:#00ff000a}.notifications-item-main{flex:1;display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:10px 12px;background:transparent;border:none;color:inherit;text-align:left;cursor:pointer;font-family:inherit;min-width:0}.notifications-item-main:hover{background:#ffffff0a}.notifications-item-title{font-size:.82rem;color:#fff;font-weight:600;line-height:1.3}.notifications-item.is-unread .notifications-item-title:before{content:"";display:inline-block;width:6px;height:6px;margin-right:6px;border-radius:50%;background:var(--primary-color, #0f0);vertical-align:middle}.notifications-item-body{font-size:.78rem;color:#bbb;line-height:1.35;word-break:break-word}.notifications-item-time{font-size:.68rem;color:#666;font-family:JetBrains Mono,ui-monospace,monospace}.notifications-item-actions{display:flex;flex-direction:row;align-items:center;justify-content:center;gap:4px;padding:6px 8px 6px 0;flex-shrink:0}.notifications-item-action{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border:1px solid var(--border-color, #333);background:transparent;color:#aaa;cursor:pointer;padding:0}.notifications-item-action--accept{color:var(--primary-color, #0f0);border-color:#00ff0059}.notifications-item-action--accept:hover:not(:disabled){background:#00ff001a;color:var(--primary-color, #0f0)}.notifications-item-action--decline{color:#e74c3c;border-color:#e74c3c59}.notifications-item-action--decline:hover:not(:disabled){background:#e74c3c1f;color:#e74c3c}.notifications-item-action:disabled{opacity:.4;cursor:default}.notifications-ctx-menu{position:absolute;z-index:400;min-width:160px;padding:4px 0;background:#111;border:1px solid var(--border-color, #333);box-shadow:0 10px 28px #00000080}.notifications-ctx-item{display:flex;align-items:center;gap:10px;width:100%;padding:8px 12px;border:none;background:transparent;color:#ddd;font-size:.8rem;font-family:inherit;text-align:left;cursor:pointer}.notifications-ctx-item:hover:not(:disabled){background:#ffffff0f;color:#fff}.notifications-ctx-item--danger:hover:not(:disabled){color:#e74c3c;background:#e74c3c1a}.notifications-ctx-item:disabled{opacity:.45;cursor:default}.notifications-ctx-item svg{flex-shrink:0;opacity:.85}.mobile-header .notification-bell-wrap{margin-right:4px}.mobile-header .notification-bell-btn{width:40px;height:40px;border:none;color:#ccc}.app.has-site-background .notifications-panel{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0c0c0ceb}.bg-viewport{position:relative;width:100%;height:100%;overflow:hidden;background:#101010}.bg-viewport.interactive{cursor:grab}.bg-viewport.interactive.dragging{cursor:grabbing;touch-action:none}.bg-viewport-img{position:absolute;max-width:none;max-height:none;pointer-events:none;-webkit-user-select:none;user-select:none;object-fit:cover}.bg-viewport.fit-fill .bg-viewport-img{object-fit:fill}.bg-viewport-frame{position:absolute;inset:0;border:2px solid rgba(255,255,255,.85);box-shadow:0 0 0 9999px #00000073;pointer-events:none;z-index:2}.bg-viewport.frame-circle,.bg-viewport.frame-circle .bg-viewport-frame.circle,.bg-viewport.frame-circle .bg-viewport-overlay{border-radius:50%}.bg-viewport.framed .bg-viewport-overlay{z-index:1}.bg-viewport-overlay{position:absolute;inset:0;background:#000;pointer-events:none;z-index:1}.site-bg-viewport-host{position:fixed;inset:0;width:100vw;width:100dvw;height:100vh;height:100dvh;min-width:100%;min-height:100%;z-index:0;pointer-events:none;overflow:hidden}.site-bg-viewport-host .bg-viewport{position:absolute;inset:0;width:100%;height:100%}.site-bg-viewport-host .bg-viewport-img{position:absolute;inset:0;width:100%;height:100%;max-width:none;max-height:none;object-fit:cover}.site-bg-viewport-host .bg-viewport.fit-fill .bg-viewport-img{object-fit:fill}.app-surface{position:relative;z-index:1;flex:1;display:flex;flex-direction:column;min-height:100vh;width:100%}.app.has-site-background{--sb-surface: rgba(8, 8, 8, .86);--sb-surface-strong: rgba(8, 8, 8, .94);--sb-chrome: rgba(0, 0, 0, .58);--sb-edge: rgba(255, 255, 255, .08);--sb-edge-soft: rgba(255, 255, 255, .04);--sb-blur: blur(12px);--sb-text-glow: 0 1px 1px rgba(0, 0, 0, .5)}.app.has-site-background .header,.app.has-site-background .mobile-header{background:var(--sb-chrome);backdrop-filter:var(--sb-blur);-webkit-backdrop-filter:var(--sb-blur);border-bottom-color:var(--sb-edge);box-shadow:0 1px 0 var(--sb-edge-soft)}.app.has-site-background .footer{background:var(--sb-chrome);backdrop-filter:var(--sb-blur);-webkit-backdrop-filter:var(--sb-blur);border-top-color:var(--sb-edge);color:#9a9a9a}.app.has-site-background .card,.app.has-site-background .access-denied,.app.has-site-background .settings-card,.app.has-site-background .modal-content{background:linear-gradient(180deg,rgba(255,255,255,.03) 0%,transparent 42%),var(--sb-surface-strong);border-color:var(--sb-edge);box-shadow:0 0 0 1px #0000004d,0 16px 40px #0000003d}.app.has-site-background .article-page-card,.app.has-site-background .article-shell{background:#0a0a0a;border:1px solid rgba(255,255,255,.08);padding:0;overflow:visible;box-shadow:0 18px 48px #0000004d}.app.has-site-background .file-page-card,.app.has-site-background .file-page-reader-shell{background:#0a0a0a;border-color:#ffffff1a;box-shadow:0 0 0 1px #00000059,0 18px 48px #00000052}.app.has-site-background .file-page-header-reader{background:#0a0a0afa}.app.has-site-background .file-page-preview-reader{background:#0d0d0d}.app.has-site-background .file-page-reader-footer,.app.has-site-background .file-page-body-reader{background:#0b0b0b}.app.has-site-background .btn:not(.btn-primary):not(.action-btn):not(.confirm-btn){background-color:#0000006b;border-color:color-mix(in srgb,var(--primary-color) 55%,rgba(255,255,255,.16));box-shadow:inset 0 0 0 1px #ffffff08}.app.has-site-background .btn:not(.btn-primary):not(.action-btn):not(.confirm-btn):hover:not(:disabled){background-color:var(--primary-color);border-color:var(--primary-color);box-shadow:none}.app.has-site-background .cancel-btn{background-color:#0000006b;border-color:color-mix(in srgb,#ff5555 70%,rgba(255,255,255,.18));color:#ff7a7a}.app.has-site-background .cancel-btn:hover:not(:disabled){background-color:#f55;border-color:#f55;color:#fff}.app.has-site-background .home-hero-title,.app.has-site-background .home-hero-tagline,.app.has-site-background .title,.app.has-site-background .logo{text-shadow:var(--sb-text-glow)}.app.has-site-background .home-hero-desc,.app.has-site-background .subtitle{color:#d0d0d0;text-shadow:var(--sb-text-glow)}.app.has-site-background .nav-link{text-shadow:var(--sb-text-glow)}.app.has-site-background .messenger-empty{background:var(--sb-surface);border:1px solid var(--sb-edge);box-shadow:0 12px 28px #0003}.app.has-site-background .dropdown-menu,.app.has-site-background .key-select-dropdown,.app.has-site-background .articles-dropdown,.app.has-site-background .key-dock-panel,.app.has-site-background .user-profile-dropdown{background:var(--sb-surface-strong);border-color:var(--sb-edge);box-shadow:0 0 0 1px #00000059,0 14px 36px #00000059}.app.has-site-background .articles-dropdown,.app.has-site-background .key-dock-panel,.app.has-site-background .user-profile-dropdown{border-left-color:var(--primary-color)}.header{border-bottom:1px solid var(--border-color);padding:16px 24px;position:sticky;top:0;z-index:100;background:#000;transition:box-shadow .3s}.header-content{max-width:1200px;margin:0 auto;display:flex;align-items:center;gap:40px}.logo{color:var(--primary-color);font-weight:600;font-size:1.2rem;letter-spacing:1px;text-decoration:none;cursor:pointer;transition:color .2s}.logo:hover{color:var(--primary-hover)}.nav{display:flex;align-items:center;gap:24px;margin-right:auto}.nav-item-wrap{position:relative}.nav-link{background:none;border:none;color:#888;font-size:.95rem;cursor:pointer;padding:8px 12px;transition:all .2s;border-bottom:2px solid transparent;text-decoration:none;font-family:JetBrains Mono,monospace;letter-spacing:.5px}.nav-link:hover{color:var(--primary-color);background:#00ff000d}.nav-link.active{color:var(--primary-color);border-bottom-color:var(--primary-color);font-weight:500}.user-menu{display:flex;align-items:center;gap:12px;margin-left:auto;flex-shrink:0}.user-profile-link{display:flex;align-items:center;gap:10px;padding:0;border:none;background:none;cursor:pointer;font-family:JetBrains Mono,monospace}.user-profile-link:hover,.user-profile-link.is-open{background:transparent}.user-avatar-small{width:45px;height:45px;border:2px solid var(--primary-color);object-fit:cover;flex-shrink:0;transition:border-color .2s}.user-avatar-fallback{display:inline-flex;align-items:center;justify-content:center;width:45px;height:45px;border:2px solid var(--primary-color);color:var(--primary-color);font-size:1.1rem;font-weight:600;font-family:JetBrains Mono,monospace;flex-shrink:0}.user-profile-name{max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--primary-color);font-size:.9rem;letter-spacing:.4px}.user-profile-link:hover .user-avatar-small,.user-profile-link:hover .user-avatar-fallback,.user-profile-link.is-open .user-avatar-small,.user-profile-link.is-open .user-avatar-fallback{border-color:#fff}.user-profile-link:hover .user-profile-name,.user-profile-link.is-active .user-profile-name,.user-profile-link.is-open .user-profile-name{color:#fff}.user-profile-wrap{position:relative;display:inline-flex;flex-shrink:0}.user-profile-dropdown{position:fixed;z-index:400;width:260px;max-width:calc(100vw - 24px);overflow:hidden;background:#111;border:1px solid #222;border-left:2px solid var(--primary-color);box-shadow:0 8px 32px #0006;animation:dropdownSlideIn .2s ease-out;font-family:JetBrains Mono,monospace}.user-profile-uuid{display:flex;align-items:center;gap:8px;width:100%;padding:10px 12px;border:none;border-bottom:1px solid #1c1c1c;background:#0c0c0c;color:#888;text-align:left;cursor:pointer}.user-profile-uuid-label{flex-shrink:0;font-size:.65rem;letter-spacing:1px;text-transform:uppercase;color:#666}.user-profile-uuid-value{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.72rem;color:#bbb}.user-profile-uuid svg{flex-shrink:0;color:#666}.user-profile-uuid:hover{background:#00ff000a}.user-profile-uuid:hover .user-profile-uuid-label,.user-profile-uuid:hover .user-profile-uuid-value,.user-profile-uuid:hover svg{color:var(--primary-color)}.user-profile-item{display:block;width:100%;padding:10px 12px;border:none;background:transparent;color:#aaa;font-size:.82rem;font-family:JetBrains Mono,monospace;text-align:left;text-decoration:none;cursor:pointer;transition:background .15s,color .15s}.user-profile-item+.user-profile-item{border-top:1px solid #1c1c1c}.user-profile-item:hover{background:#00ff000d;color:var(--primary-color)}.user-profile-item.is-exit:hover{color:#e74c3c;background:#e74c3c14}.user-email{color:var(--primary-color);font-weight:500;font-size:.9rem}.key-dock{position:relative;display:inline-flex;align-items:center}.key-dock-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;border:1px solid var(--border-color, #333);background:transparent;color:var(--text-secondary, #aaa);cursor:pointer;transition:color .15s ease,border-color .15s ease,background .15s ease}.key-dock-icon{display:block;flex-shrink:0}.key-dock-btn:hover,.key-dock-btn.is-open{color:var(--primary-color, #0f0);border-color:var(--primary-color, #0f0);background:#00ff000f}.key-dock-btn.has-key{color:var(--primary-color, #0f0);border-color:var(--primary-color, #0f0)}.key-dock-dot{position:absolute;top:-5px;right:-5px;width:6px;height:6px;border-radius:50%;background:var(--primary-color, #0f0);box-shadow:0 0 0 2px #000}.mobile-header .key-dock-btn{width:40px;height:40px;border:none;color:#ccc}.key-dock-panel{position:absolute;top:100%;right:0;z-index:220;width:min(340px,calc(100vw - 24px));max-height:min(72vh,560px);margin-top:8px;padding:0;overflow:hidden;display:flex;flex-direction:column;background:#111;border:1px solid #222;border-left:2px solid var(--primary-color);box-shadow:0 8px 32px #0006;animation:dropdownSlideIn .2s ease-out;font-family:JetBrains Mono,monospace}.key-dock-head{flex-shrink:0;background:#0c0c0c;border-bottom:1px solid #222}.key-dock-tabs{display:flex}.key-dock-tab{flex:1;position:relative;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 12px;border:none;background:transparent;color:#777;font-size:.8rem;letter-spacing:.06em;text-transform:uppercase;font-family:JetBrains Mono,monospace;cursor:pointer;transition:color .15s,background .15s}.key-dock-tab:hover{color:var(--primary-color);background:#00ff000a}.key-dock-tab.is-active{color:var(--primary-color)}.key-dock-tab.is-active:after{content:"";position:absolute;left:12px;right:12px;bottom:0;height:1px;background:var(--primary-color);box-shadow:0 0 8px #00ff0059}.key-dock-tab-dot{width:6px;height:6px;border-radius:50%;background:var(--primary-color);box-shadow:0 0 6px #0f09}.key-dock-tab-count,.key-dock-count{min-width:16px;padding:0 5px;height:16px;line-height:16px;text-align:center;font-size:.65rem;letter-spacing:0;text-transform:none;color:var(--primary-color);border:1px solid rgba(0,255,0,.35)}.key-dock-body{flex:1;min-height:0;overflow-y:auto;padding:14px 12px;display:flex;flex-direction:column;gap:14px}.key-dock-section{display:flex;flex-direction:column;gap:8px}.key-dock-section+.key-dock-section{padding-top:14px;border-top:1px solid #1c1c1c}.key-dock-section--inset{padding:10px;background:#0c0c0c;border:1px solid #222}.key-dock-label{display:flex;align-items:center;gap:8px;color:#666;font-size:.68rem;text-transform:uppercase;letter-spacing:1px}.key-dock-hint{margin:0;font-size:.78rem;color:#777;line-height:1.45}.key-dock-empty{margin:0;padding:22px 12px;text-align:center;font-size:.8rem;color:#555}.key-dock-state{display:flex;flex-direction:column;gap:10px;padding:8px 2px 4px}.key-dock-disclosure{display:inline-flex;align-items:center;gap:8px;width:fit-content;background:none;border:none;color:#666;font-size:.68rem;text-transform:uppercase;letter-spacing:1px;padding:0;cursor:pointer;font-family:JetBrains Mono,monospace;transition:color .15s}.key-dock-disclosure:hover,.key-dock-disclosure.is-open{color:var(--primary-color)}.key-dock-chevron{transition:transform .15s ease}.key-dock-disclosure.is-open .key-dock-chevron{transform:rotate(180deg)}.key-dock-check{position:relative;display:flex;align-items:center;gap:8px;font-size:.72rem;color:#888;letter-spacing:.04em;cursor:pointer;-webkit-user-select:none;user-select:none}.key-dock-check input{position:absolute;opacity:0;width:0;height:0}.key-dock-check-box{width:12px;height:12px;flex-shrink:0;border:1px solid #444;background:#0c0c0c;position:relative}.key-dock-check input:focus-visible+.key-dock-check-box{border-color:var(--primary-color)}.key-dock-check input:checked+.key-dock-check-box{border-color:var(--primary-color);background:var(--primary-color)}.key-dock-check input:checked+.key-dock-check-box:after{content:"";position:absolute;left:3px;top:0;width:4px;height:8px;border:solid #000;border-width:0 1.5px 1.5px 0;transform:rotate(45deg)}.key-dock-fieldgroup{display:flex;align-items:stretch;background:#0c0c0c;border:1px solid #333;transition:border-color .2s}.key-dock-fieldgroup:focus-within{border-color:var(--primary-color)}.key-dock-field{flex:1;min-width:0;width:100%;height:36px;appearance:none;-webkit-appearance:none;border-radius:0;background:#0c0c0c;border:1px solid #333;color:#fff;padding:0 10px;font-family:JetBrains Mono,monospace;font-size:.82rem;outline:none;transition:border-color .2s}.key-dock-field::-webkit-search-decoration,.key-dock-field::-webkit-search-cancel-button{-webkit-appearance:none}.key-dock-field:-webkit-autofill,.key-dock-field:-webkit-autofill:hover,.key-dock-field:-webkit-autofill:focus{-webkit-text-fill-color:#fff;caret-color:#fff;box-shadow:0 0 0 1000px #0c0c0c inset;transition:background-color 9999s ease-out}.key-dock-field::placeholder{color:#555}.key-dock-field:focus{border-color:var(--primary-color)}.key-dock-field:disabled{opacity:.45;cursor:not-allowed}.key-dock-fieldgroup .key-dock-field{border:none;background:transparent}.key-dock-fieldgroup .key-dock-field:focus{border:none}.key-dock-field--iters{flex:0 0 68px;width:68px;text-align:center;border-left:1px solid #222!important;padding:0 6px}.key-dock-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;flex-shrink:0;padding:0;border:1px solid #333;background:transparent;color:#777;cursor:pointer;transition:color .15s,border-color .15s,background .15s}.key-dock-fieldgroup .key-dock-icon-btn{border:none;border-left:1px solid #222;background:transparent}.key-dock-icon-btn:hover:not(:disabled){color:var(--primary-color);border-color:var(--primary-color);background:#00ff000d}.key-dock-fieldgroup .key-dock-icon-btn:hover:not(:disabled){border-left-color:#222;background:#00ff000f}.key-dock-icon-btn.is-on{color:var(--primary-color);border-color:var(--primary-color)}.key-dock-icon-btn:disabled{opacity:.4;cursor:not-allowed}.key-dock-icon-btn.is-busy svg{animation:spin .8s linear infinite}.key-dock-actions{display:flex;gap:8px}.key-dock-action{flex:1;border:1px solid #333;background:transparent;color:#aaa;font-size:.78rem;font-family:JetBrains Mono,monospace;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 10px;text-align:center;transition:all .15s}.key-dock-action:hover:not(:disabled){border-color:var(--primary-color);color:var(--primary-color);background:#00ff000d}.key-dock-action--primary{border-color:var(--primary-color);color:var(--primary-color)}.key-dock-action--primary:hover:not(:disabled){background:var(--primary-color);color:#000}.key-dock-action--danger:hover:not(:disabled){border-color:#e74c3c;color:#e74c3c;background:#e74c3c14}.key-dock-action--block{width:100%;flex:none}.key-dock-action:disabled{opacity:.4;cursor:not-allowed}.key-dock-combo{max-height:168px;overflow-y:auto;background:#0c0c0c;border:1px solid #222}.key-dock-combo-item,.key-dock-db-item{display:flex;align-items:center;gap:8px;width:100%;padding:9px 12px;border:none;border-bottom:1px solid #1a1a1a;background:transparent;color:#ddd;font-size:.8rem;font-family:JetBrains Mono,monospace;text-align:left;cursor:pointer;position:relative;transition:background .15s,color .15s,padding-left .15s}.key-dock-combo-item:last-child,.key-dock-db-item:last-child{border-bottom:none}.key-dock-combo-item:hover,.key-dock-db-item:hover{background:#00ff000d;color:var(--primary-color);padding-left:16px}.key-dock-combo-item.is-selected,.key-dock-db-item.is-selected{background:#00ff0014;color:var(--primary-color)}.key-dock-combo-item.is-selected:before,.key-dock-db-item.is-selected:before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--primary-color)}.key-dock-db-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.key-dock-db-toolbar{display:flex;gap:4px}.key-dock-db-toolbar .key-dock-icon-btn{width:30px;height:30px}.key-dock-db-list{max-height:240px;overflow-y:auto;background:#0c0c0c;border:1px solid #222}.key-dock-db-check{width:12px;flex-shrink:0;color:var(--primary-color);font-size:.75rem}.key-dock-db-note{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.key-dock-db-id{flex-shrink:0;color:#555;font-size:.7rem}.key-dock-ctx{position:absolute;z-index:30;min-width:150px;background:#111;border:1px solid #222;border-left:2px solid var(--primary-color);box-shadow:0 8px 32px #0006;padding:4px 0}.key-dock-ctx-item{display:block;width:100%;padding:8px 16px;border:none;background:transparent;color:#aaa;font-size:.8rem;font-family:JetBrains Mono,monospace;text-align:left;cursor:pointer;transition:all .15s}.key-dock-ctx-item:hover{background:#00ff000d;color:var(--primary-color);padding-left:22px}.key-dock-ctx-item.is-danger:hover{color:#e74c3c;background:#e74c3c14}.key-dock--left .key-dock-panel{right:auto;left:0}.sections-dropdown{min-width:220px}.sections-dropdown .dropdown-item-btn{display:block;width:100%;text-align:left;background:transparent;border:none;color:#fff;padding:10px 12px;cursor:pointer;font-size:.85rem;font-family:inherit}.sections-dropdown .dropdown-item-btn:hover{background:var(--border-color)}.key-section{display:flex;align-items:center;gap:8px;position:relative}.btn-generator{background:transparent;border:1px solid var(--border-color);color:#666;width:36px;height:36px;display:none;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;flex-shrink:0}.btn-generator.visible{display:flex}.btn-generator:hover{color:var(--primary-color);border-color:var(--primary-color);background:#00ff000d}.btn-generator:hover .generator-icon{transform:rotate(45deg)}.key-input-wrapper{position:relative;min-width:280px}.key-input-header{width:100%;background-color:#111;border:1px solid #333;padding:0 14px;color:#fff;outline:none;font-family:JetBrains Mono,monospace;font-size:.85rem;height:36px;transition:all .2s}.key-input-header::placeholder{color:#555;font-size:.8rem}.key-input-header:focus{border-color:var(--primary-color);box-shadow:0 0 0 2px #00ff001a}.dropdown-body{padding:12px}.dropdown-item-btn{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;background:transparent;border:1px solid #333;color:#aaa;padding:8px 12px;cursor:pointer;font-size:.8rem;font-family:JetBrains Mono,monospace;transition:all .15s}.dropdown-item-btn:hover:not(:disabled){border-color:var(--primary-color);color:var(--primary-color);background:#00ff000d}.dropdown-item-btn:disabled{opacity:.4;cursor:not-allowed}.dropdown-action-btn{display:block;width:100%;background:transparent;border:1px solid #333;color:#aaa;padding:8px 12px;cursor:pointer;font-size:.8rem;font-family:JetBrains Mono,monospace;transition:all .15s;text-align:center}.dropdown-action-btn:hover:not(:disabled){border-color:var(--primary-color);color:var(--primary-color);background:#00ff000d}.dropdown-action-btn.secondary{border-color:#444}.dropdown-action-btn.secondary:hover:not(:disabled){border-color:var(--primary-color)}.dropdown-action-btn:disabled{opacity:.4;cursor:not-allowed}.dropdown-divider{height:1px;background:#222;margin:8px 0}.dropdown-section-title{color:#666;font-size:.7rem;text-transform:uppercase;letter-spacing:1px;padding:0 4px;margin-bottom:8px}.dropdown-selects-row{display:flex;gap:8px;margin-bottom:8px}.dropdown-select-label{display:block;color:#666;font-size:.65rem;text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px}.dropdown-select{width:100%;background:#0c0c0c;border:1px solid #333;color:#fff;padding:6px 8px;font-size:.75rem;font-family:JetBrains Mono,monospace;outline:none;cursor:pointer;transition:border-color .2s}.dropdown-select:focus{border-color:var(--primary-color)}.dropdown-select option{background:#0c0c0c;color:#fff}.dropdown-selects-row{display:flex;gap:8px;margin-bottom:12px}.dropdown-select-group{flex:1}.dropdown-select-label{display:block;color:#888;font-size:.75rem;margin-bottom:4px;text-transform:uppercase;letter-spacing:.5px}.dropdown-actions{display:flex;gap:8px}.dropdown-actions .action-item{flex:1;text-align:center;border:1px solid var(--primary-color);color:var(--primary-color);background:transparent;padding:8px}.dropdown-actions .action-item:hover{background:var(--primary-color);color:#000}.key-select-wrapper{position:absolute;right:0;top:0}.key-select-button{background:transparent;border:none;color:var(--primary-color);padding:10px 8px;cursor:pointer;font-size:.8rem}.key-select-dropdown{position:absolute;right:0;top:100%;background:#0c0c0c;border:1px solid var(--border-color);min-width:200px;max-height:300px;overflow-y:auto;z-index:100}.key-select-item{display:block;width:100%;background:transparent;border:none;color:#fff;padding:10px 12px;text-align:left;cursor:pointer;font-size:.85rem;transition:background .2s;font-family:JetBrains Mono,monospace}.key-select-item:hover{background:var(--border-color)}.key-select-item.selected{background:#00ff001a;color:var(--primary-color)}.key-select-check{color:var(--primary-color);margin-right:8px}@keyframes dropdownSlideIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.articles-dropdown{position:absolute;top:100%;left:0;background:#111;border:1px solid #222;border-left:2px solid var(--primary-color);min-width:180px;z-index:100;margin-top:8px;box-shadow:0 8px 32px #0006;animation:dropdownSlideIn .2s ease-out}.articles-dropdown .dropdown-item{text-decoration:none;display:block;padding:8px 16px;color:#aaa;font-family:JetBrains Mono,monospace;font-size:.85rem;transition:all .15s;position:relative}.articles-dropdown .dropdown-item:after{content:"";position:absolute;bottom:0;left:0;right:0;height:1px;background:var(--primary-color);transform:scaleX(0);transition:transform .15s}.articles-dropdown .dropdown-item:hover{background:#00ff000d;color:var(--primary-color);padding-left:24px}.articles-dropdown .dropdown-item:hover:after{transform:scaleX(1)}.dropdown-divider{height:1px;background:#222;margin:4px 0}.dropdown-item-muted{color:#666!important;cursor:default;pointer-events:none}.footer{border-top:1px solid var(--border-color);padding:16px 24px;background:#000;margin-top:auto}.footer-content{max-width:1200px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px}.footer-left{display:flex;align-items:center;gap:12px}.footer-brand{color:#fff;font-weight:600;font-size:.95rem}.footer-version{color:#555;font-size:.75rem;font-family:JetBrains Mono,monospace}.footer-center{display:flex;align-items:center}.footer-link{color:#888;text-decoration:none;font-size:.85rem;transition:color .2s}.footer-link:hover{color:var(--primary-color)}.footer-right{display:flex;align-items:center;gap:16px}.footer-status{font-size:.8rem;font-weight:500}.footer-status.online{color:#0c0}.footer-status.offline{color:#f55}.footer-copy{color:#444;font-size:.75rem}.mobile-header{border-bottom:1px solid var(--border-color);padding:12px 16px;background:#000;position:sticky;top:0;z-index:100}.mobile-header-content{display:flex;justify-content:space-between;align-items:center}.mobile-header-actions{display:flex;align-items:center;gap:8px}.mobile-logo{color:var(--primary-color);font-weight:600;font-size:1.1rem;letter-spacing:1px;text-decoration:none}.mobile-menu-btn{background:transparent;border:1px solid var(--border-color);color:var(--primary-color);padding:8px 12px;cursor:pointer;font-size:1.2rem;transition:all .2s}.mobile-menu-btn:hover{background:var(--border-color)}.mobile-menu-overlay{position:fixed;inset:0;background:#000000f2;z-index:200;opacity:0;visibility:hidden;transition:all .3s ease}.mobile-menu-overlay.open{opacity:1;visibility:visible}.mobile-menu{position:absolute;top:0;right:0;width:85%;max-width:320px;height:100%;background:#0c0c0c;border-left:1px solid var(--border-color);padding:20px;overflow-y:auto;transform:translate(100%);transition:transform .3s ease}.mobile-menu-overlay.open .mobile-menu{transform:translate(0)}.mobile-nav{display:flex;flex-direction:column;gap:4px;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid var(--border-color)}.mobile-nav-link{background:transparent;border:none;color:#aaa;font-size:1rem;padding:12px 0;cursor:pointer;text-decoration:none;text-align:left;transition:color .2s;display:block}.mobile-nav-link:hover{color:var(--primary-color)}.mobile-nav-item{display:flex;flex-direction:column}.mobile-submenu{padding-left:16px;margin-top:8px;display:flex;flex-direction:column;gap:4px}.mobile-submenu a{color:#888;font-size:.9rem;padding:8px 0;text-decoration:none}.mobile-submenu a:hover{color:var(--primary-color)}.mobile-submenu-muted{color:#555;font-size:.85rem;padding:8px 0}.mobile-user-section{margin-top:auto;padding-top:16px;border-top:1px solid var(--border-color)}.mobile-user-info{display:flex;align-items:center;gap:12px;margin-bottom:12px}.mobile-user-avatar{width:44px;height:44px;border:1px solid var(--primary-color);object-fit:cover}.mobile-user-email{color:var(--primary-color);font-size:.95rem}.mobile-logout-btn,.mobile-login-btn{width:100%;background:transparent;border:1px solid var(--primary-color);color:var(--primary-color);padding:12px;font-size:1rem;cursor:pointer;transition:all .2s}.mobile-logout-btn:hover,.mobile-login-btn:hover{background:var(--primary-color);color:#000}.logout-btn{width:24px;height:24px;background:transparent;border:1px solid #333;color:#666;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;margin-left:auto}.logout-btn:hover{background:#222;border-color:#555;color:#fff}.glossary-footer-btn{background:none;border:none;cursor:pointer;font-family:JetBrains Mono,monospace}@media(max-width:768px){.header{display:none}}@media(min-width:769px){.mobile-header{display:none}}.home-page{max-width:900px;margin:0 auto;padding:80px 24px 60px}.home-hero{text-align:center;margin-bottom:80px}.home-hero-title{font-size:2.8rem;font-weight:700;color:var(--primary-color);letter-spacing:4px;margin:0 0 16px}.home-hero-tagline{font-size:1.15rem;color:#ccc;margin:0 0 12px;line-height:1.5}.home-hero-desc{font-size:.9rem;color:#555;line-height:1.6;max-width:600px;margin:0 auto 32px}.home-hero-actions{display:flex;gap:12px;justify-content:center}.home-features{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:64px}.home-feature-card{border:1px solid #1a1a1a;background:#0c0c0c;padding:28px 24px;transition:border-color .2s,background .2s}.home-feature-card:hover{border-color:#333;background:#0e0e0e}.home-feature-card svg{color:var(--primary-color);margin-bottom:16px}.home-feature-title{font-size:1rem;font-weight:600;color:#eee;margin:0 0 8px}.home-feature-desc{font-size:.85rem;color:#555;margin:0;line-height:1.55}.home-feature-card-disabled{opacity:.6;cursor:not-allowed}.home-feature-card-disabled:hover{border-color:#1a1a1a;background:#0c0c0c}.home-tech{display:flex;justify-content:center;flex-wrap:wrap;gap:10px;margin-bottom:64px}.home-tech-badge{display:inline-block;padding:5px 14px;font-size:.75rem;font-family:JetBrains Mono,monospace;color:#555;border:1px solid #1a1a1a;letter-spacing:.5px}.home-cta{text-align:center;padding:40px 0;border-top:1px solid #1a1a1a}.home-cta-text{font-size:1.1rem;color:#888;margin:0 0 20px}.home-welcome{text-align:center;margin-bottom:48px}.home-welcome-title{font-size:1.6rem;font-weight:600;color:#fff;margin:0 0 8px}.home-welcome-sub{font-size:.95rem;color:#666;margin:0}.home-quick-links{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:32px}.home-quick-link{display:flex;flex-direction:column;gap:6px;padding:24px 20px;border:1px solid #1a1a1a;background:#0c0c0c;text-decoration:none;transition:border-color .2s,background .2s}.home-quick-link:hover{border-color:#333;background:#0e0e0e}.home-quick-link-disabled{cursor:not-allowed;opacity:.7}.home-quick-link-disabled:hover{border-color:#1a1a1a;background:#0c0c0c}.home-quick-link svg{color:var(--primary-color)}.home-quick-link-label{font-size:.95rem;font-weight:600;color:#ddd}.home-quick-link-desc{font-size:.78rem;color:#555}.home-quick-link-full{grid-column:1 / -1;flex-direction:row;align-items:center;gap:12px;padding:18px 20px}.home-quick-link-full .home-quick-link-label{font-size:1rem}.home-quick-link-full .home-quick-link-desc{display:none}.home-authed-actions{display:flex;gap:12px;justify-content:center}@media(max-width:600px){.home-page{padding:40px 16px}.home-hero-title{font-size:2rem}.home-features,.home-quick-links{grid-template-columns:1fr}}.not-found{display:flex;align-items:center;justify-content:center;min-height:400px}.not-found-content{text-align:center;padding:40px}.not-found-title{font-size:6rem;color:var(--primary-color);margin-bottom:16px;font-weight:700}.not-found-subtitle{font-size:1.5rem;color:#fff;margin-bottom:16px}.not-found-message{color:#666;font-size:1rem;line-height:1.6;margin-bottom:24px}.not-found-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
