:root{--bg-primary: #090d16;--bg-secondary: #0f172a;--bg-tertiary: #1e293b;--bg-card: rgba(15, 23, 42, .75);--bg-card-hover: rgba(30, 41, 59, .85);--bg-glass: rgba(255, 255, 255, .03);--border-subtle: rgba(255, 255, 255, .08);--border-focus: #38bdf8;--accent-cyan: #38bdf8;--accent-indigo: #6366f1;--accent-purple: #a855f7;--accent-emerald: #10b981;--accent-amber: #f59e0b;--accent-rose: #f43f5e;--text-primary: #f8fafc;--text-secondary: #94a3b8;--text-muted: #64748b;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px);--safe-right: env(safe-area-inset-right, 0px);--sidebar-width: 260px;--header-height: calc(58px + var(--safe-top));--bottom-nav-height: calc(60px + var(--safe-bottom));--radius-sm: 8px;--radius-md: 12px;--radius-lg: 18px;--radius-full: 9999px;--font-family: "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--shadow-glow: 0 0 25px rgba(56, 189, 248, .15);--shadow-card: 0 10px 30px -10px rgba(0, 0, 0, .5);--backdrop-blur: blur(16px)}[data-theme=light]{--bg-primary: #f1f5f9;--bg-secondary: #ffffff;--bg-tertiary: #e2e8f0;--bg-card: rgba(255, 255, 255, .85);--bg-card-hover: rgba(241, 245, 249, .95);--bg-glass: rgba(0, 0, 0, .02);--border-subtle: rgba(0, 0, 0, .08);--border-focus: #0284c7;--text-primary: #0f172a;--text-secondary: #475569;--text-muted: #94a3b8;--shadow-glow: 0 0 25px rgba(2, 132, 199, .12);--shadow-card: 0 10px 30px -10px rgba(0, 0, 0, .08)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent;user-select:none}input,textarea,[contenteditable=true]{user-select:text}html,body{width:100%;height:100%;height:100dvh;overflow:hidden;overscroll-behavior:none;font-family:var(--font-family);background-color:var(--bg-primary);color:var(--text-primary);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#app{display:flex;width:100vw;height:100vh;height:100dvh;overflow:hidden;position:relative}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--bg-tertiary);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--accent-cyan)}h1,h2,h3,h4,h5,h6{font-weight:600;color:var(--text-primary);line-height:1.25}a{color:var(--accent-cyan);text-decoration:none;transition:opacity .2s}a:hover{opacity:.8}.gradient-text{background:linear-gradient(135deg,var(--accent-cyan),var(--accent-indigo),var(--accent-purple));-webkit-background-clip:text;-webkit-text-fill-color:transparent}.app-sidebar{width:var(--sidebar-width);height:100%;background:var(--bg-secondary);border-right:1px solid var(--border-subtle);display:flex;flex-direction:column;z-index:20;flex-shrink:0;transition:transform .3s cubic-bezier(.4,0,.2,1)}.app-main{flex:1;display:flex;flex-direction:column;height:100%;overflow:hidden;position:relative;background:radial-gradient(circle at 50% 0%,rgba(56,189,248,.04) 0%,transparent 60%)}.app-header{height:var(--header-height);padding:var(--safe-top) 20px 0 20px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border-subtle);background:var(--bg-card);backdrop-filter:var(--backdrop-blur);z-index:15;flex-shrink:0}.app-content{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:20px;position:relative}@media(max-width:768px){.app-sidebar{display:none}.app-header{height:var(--header-height);padding:calc(var(--safe-top) + 8px) 14px 8px 14px}.app-content{padding:14px;padding-bottom:calc(var(--bottom-nav-height) + 14px)}.form-input,.form-textarea,.form-select{font-size:16px!important}.btn{min-height:40px}.btn-sm{min-height:36px}.btn-icon{min-width:40px;min-height:40px}}.card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:20px;backdrop-filter:var(--backdrop-blur);transition:all .2s cubic-bezier(.4,0,.2,1);box-shadow:0 4px 20px #0003}.card:hover{border-color:var(--border-medium);box-shadow:0 8px 30px #00000059}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:8px 16px;border-radius:var(--radius-md);font-size:13px;font-weight:500;cursor:pointer;border:none;transition:all .2s cubic-bezier(.4,0,.2,1);user-select:none;text-decoration:none;font-family:inherit;outline:none}.btn-primary{background:linear-gradient(135deg,var(--accent-cyan),var(--accent-indigo));color:#fff;box-shadow:0 2px 10px #38bdf840}.btn-primary:hover{box-shadow:0 4px 18px #38bdf866;transform:translateY(-1px)}.btn-primary:active{transform:translateY(0)}.btn-secondary{background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-subtle)}.btn-secondary:hover{background:#ffffff1a;border-color:var(--border-medium)}.btn-danger{background:linear-gradient(135deg,var(--accent-rose),#be123c);color:#fff;box-shadow:0 2px 10px #f43f5e40}.btn-danger:hover{box-shadow:0 4px 18px #f43f5e66;transform:translateY(-1px)}.btn-ghost{background:transparent;color:var(--text-secondary)}.btn-ghost:hover{background:var(--bg-tertiary);color:var(--text-primary)}.btn-sm{padding:5px 10px;font-size:12px;border-radius:var(--radius-sm)}.btn-lg{padding:12px 24px;font-size:15px;border-radius:var(--radius-md)}.btn-icon{padding:8px;border-radius:var(--radius-md)}.badge{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:var(--radius-full);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.badge-cyan{background:#38bdf826;color:var(--accent-cyan);border:1px solid rgba(56,189,248,.3)}.badge-emerald{background:#10b98126;color:var(--accent-emerald);border:1px solid rgba(16,185,129,.3)}.badge-amber{background:#f59e0b26;color:var(--accent-amber);border:1px solid rgba(245,158,11,.3)}.badge-rose{background:#f43f5e26;color:var(--accent-rose);border:1px solid rgba(244,63,94,.3)}.form-group{margin-bottom:16px}.form-label{display:block;font-size:12px;font-weight:500;color:var(--text-secondary);margin-bottom:6px}.form-input,.form-textarea,.form-select{width:100%;background:var(--bg-tertiary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:8px 12px;font-size:13px;color:var(--text-primary);font-family:inherit;transition:all .2s ease;outline:none}.form-input:focus,.form-textarea:focus,.form-select:focus{border-color:var(--border-focus);box-shadow:0 0 0 3px #38bdf826}.modal-overlay{position:fixed;inset:0;background:#000000bf;backdrop-filter:var(--backdrop-blur);display:flex;align-items:center;justify-content:center;z-index:100;padding:20px;opacity:0;pointer-events:none;transition:opacity .25s cubic-bezier(.4,0,.2,1)}.modal-overlay.active{opacity:1;pointer-events:auto}.modal-card{background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);width:100%;max-width:520px;max-height:90vh;max-height:90dvh;display:flex;flex-direction:column;box-shadow:0 20px 40px #0009;transform:scale(.95);transition:transform .25s cubic-bezier(.4,0,.2,1);overflow:hidden}.modal-overlay.active .modal-card{transform:scale(1)}.modal-header{padding:16px 20px;border-bottom:1px solid var(--border-subtle);display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.modal-body{padding:20px;overflow-y:auto;-webkit-overflow-scrolling:touch;flex:1}.modal-footer{padding:14px 20px;border-top:1px solid var(--border-subtle);display:flex;align-items:center;justify-content:flex-end;gap:12px;flex-shrink:0}.preview-modal-card{max-width:680px;width:92%;border-radius:18px;background:var(--bg-secondary);border:1px solid var(--border-subtle);box-shadow:0 25px 60px #000000b3}.preview-modal-pull-bar{display:none}.preview-modal-header{padding:14px 18px;border-bottom:1px solid var(--border-subtle)}.preview-modal-title{font-size:14.5px;font-weight:600;color:var(--text-primary);line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.preview-modal-meta{font-size:11px;color:var(--text-muted);margin-top:2px}.preview-modal-body{padding:18px;display:flex;justify-content:center;align-items:center;min-height:180px;background:#0a0f1d66}.preview-modal-footer{padding:12px 18px;border-top:1px solid var(--border-subtle);display:flex;gap:10px}.preview-media-image{max-width:100%;max-height:60vh;border-radius:12px;object-fit:contain;box-shadow:0 8px 30px #00000073}.preview-media-video{width:100%;max-width:100%;max-height:60vh;border-radius:12px;background:#000;outline:none}.preview-pdf-frame{width:100%;height:60vh;border:none;border-radius:12px;background:#fff}.preview-text-block{background:var(--bg-primary);padding:14px;border-radius:12px;max-height:52vh;width:100%;overflow:auto;font-family:Fira Code,monospace;font-size:11.5px;line-height:1.5;white-space:pre-wrap;word-break:break-word;border:1px solid var(--border-subtle);color:var(--text-primary)}.preview-audio-container{padding:24px 16px;text-align:center;width:100%;max-width:360px;background:var(--bg-primary);border-radius:14px;border:1px solid var(--border-subtle)}.preview-audio-icon-pulse{color:var(--accent-cyan);display:flex;justify-content:center;margin-bottom:12px}.preview-audio-title{font-weight:600;font-size:14px;margin-bottom:4px;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.preview-audio-meta{font-size:11px;color:var(--text-muted);margin-bottom:14px}.preview-audio-player{width:100%;height:36px;outline:none}.preview-fallback-container{padding:28px 16px;text-align:center}.preview-fallback-icon{color:var(--accent-cyan);display:flex;justify-content:center;margin-bottom:10px}.preview-fallback-title{font-size:14px;font-weight:600;color:var(--text-primary)}.preview-fallback-hint{font-size:11.5px;color:var(--text-muted);margin-top:4px}@media(max-width:768px){.modal-overlay{padding:0;align-items:flex-end}.modal-card{max-width:100%;max-height:85vh;max-height:85dvh;border-radius:22px 22px 0 0;border-bottom:none;transform:translateY(100%);padding-bottom:var(--safe-bottom)}.modal-overlay.active .modal-card{transform:translateY(0)}.modal-overlay:has(.preview-modal-card){align-items:center!important;justify-content:center!important;padding:16px!important}.preview-modal-card{width:92%!important;max-width:420px!important;max-height:82vh!important;max-height:82dvh!important;border-radius:16px!important;border:1px solid var(--border-subtle)!important;transform:scale(.92)!important;margin:auto!important;box-shadow:0 25px 60px #000000d9!important;padding-bottom:0!important;display:flex!important;flex-direction:column!important}.modal-overlay.active .preview-modal-card{transform:scale(1)!important}.preview-modal-pull-bar{display:none!important}.preview-modal-header{padding:12px 14px!important}.preview-modal-title{font-size:13.5px!important;font-weight:600!important}.preview-modal-meta{font-size:10px!important}.preview-modal-body{padding:12px 14px!important;max-height:48vh!important;max-height:48dvh!important;display:flex!important;align-items:center!important;justify-content:center!important}.preview-media-image,.preview-media-video{max-height:44vh!important;border-radius:10px!important}.preview-pdf-frame{height:44vh!important;border-radius:10px!important}.preview-text-block{max-height:44vh!important;font-size:11px!important;padding:10px!important;border-radius:10px!important}.preview-modal-footer{padding:10px 14px 12px!important;gap:8px!important}.preview-modal-footer .btn{flex:1!important;height:36px!important;font-size:12px!important;border-radius:9px!important}.card{padding:14px}.dashboard-container{padding:0}.dashboard-identity-card{padding:14px 14px 12px!important;margin-bottom:16px!important;border-radius:14px!important}.dashboard-identity-header{gap:10px!important}.dashboard-id-actions{display:grid!important;grid-template-columns:1fr 1fr!important;width:100%!important;gap:6px!important;margin-top:8px!important}.dashboard-id-actions #btn-dashboard-pair{grid-column:1 / -1}.dashboard-metrics-grid{grid-template-columns:repeat(3,1fr)!important;gap:6px!important;padding-top:10px!important;margin-top:12px!important}.dashboard-metric-item{display:flex;flex-direction:column;align-items:center;text-align:center;gap:3px!important;background:#00000040;padding:6px 4px;border-radius:8px;border:1px solid rgba(255,255,255,.03)}.dashboard-metric-item .metric-label{font-size:9.5px!important;line-height:1.1}.dashboard-metric-item .metric-val{font-size:11px!important}.dashboard-device-card{padding:14px!important;border-radius:14px!important}.dashboard-filter-chips{width:100%!important;overflow-x:auto!important;padding:2px!important;scrollbar-width:none;-webkit-overflow-scrolling:touch}.vault-page-wrapper{padding:0}.vault-header-card{padding:12px 14px!important;margin-bottom:12px!important;border-radius:14px!important}.vault-header-actions{width:100%!important;display:flex!important;justify-content:space-between!important;gap:6px!important;margin-top:8px!important}.vault-header-actions #btn-upload-file{flex:1!important;justify-content:center!important}.vault-search-toolbar{gap:8px!important;margin-bottom:10px!important}.vault-filter-pills{margin-bottom:12px!important;padding-bottom:2px!important}.vault-files-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important}.vault-files-grid .file-card{padding:10px 8px 8px!important;border-radius:10px!important;min-width:0!important}.vault-list-row{padding:8px 10px!important;gap:6px!important}.vault-list-row .vault-hide-mobile{display:none!important}.vault-list-actions{gap:3px!important;flex-shrink:0!important}.vault-list-actions .btn{padding:0!important;width:28px!important;height:28px!important;min-width:28px!important;min-height:28px!important;display:flex!important;align-items:center!important;justify-content:center!important}}.progress-bar-container{width:100%;height:8px;background:var(--bg-tertiary);border-radius:4px;overflow:hidden;position:relative}.progress-bar-fill{height:100%;background:linear-gradient(90deg,var(--accent-cyan),var(--accent-indigo));transition:width .3s ease}.bitfield-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(10px,1fr));gap:2px;padding:8px;background:var(--bg-primary);border-radius:var(--radius-md);border:1px solid var(--border-subtle);max-height:120px;overflow-y:auto}.bitfield-piece{width:100%;aspect-ratio:1;background:#ffffff0f;border-radius:2px;transition:background-color .15s ease}.bitfield-piece.completed{background:var(--accent-emerald);box-shadow:0 0 4px #10b98166}.bitfield-piece.downloading{background:var(--accent-cyan);animation:pulse-glow 1s infinite alternate}.mobile-bottom-nav{display:none;position:fixed;bottom:0;left:0;right:0;height:var(--bottom-nav-height);padding-bottom:var(--safe-bottom);background:#0f172af2;border-top:1px solid var(--border-subtle);z-index:50;backdrop-filter:var(--backdrop-blur);box-shadow:0 -4px 20px #0006}@media(max-width:768px){.mobile-bottom-nav{display:flex;align-items:center;justify-content:space-around}body.view-chat .app-content,body.view-notes .app-content{padding:0!important;overflow:hidden!important}body.view-chat .chat-layout-container,body.view-notes .notes-layout-container{height:calc(100vh - var(--header-height) - var(--bottom-nav-height))!important;height:calc(100dvh - var(--header-height) - var(--bottom-nav-height))!important;max-height:100%!important;border-radius:0!important;border:none!important;width:100%!important;max-width:100%!important;margin:0!important}body.view-notes #notes-sidebar-pane,body.view-notes #notes-editor-pane,body.view-chat #chat-sidebar-pane,body.view-chat #chat-conversation-pane{height:100%!important;width:100%!important}body.view-chat #attachment-tray-drawer{padding:12px 14px!important}body.view-chat #attachment-tray-drawer>div{gap:10px!important;max-width:100%!important}body.view-chat .tray-action-item>div{width:44px!important;height:44px!important}body.view-chat .tray-action-item span{font-size:10.5px!important}body.view-chat #emoji-picker-drawer{grid-template-columns:repeat(6,1fr)!important;gap:4px!important;padding:8px 10px!important}}.nav-item-mobile{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:var(--text-muted);font-size:11.5px;font-weight:600;letter-spacing:-.2px;text-decoration:none;flex:1;height:100%;transition:all .2s cubic-bezier(.4,0,.2,1);position:relative}.nav-item-mobile svg{width:22px;height:22px;transition:transform .2s ease}.nav-item-mobile:active{transform:scale(.92)}.nav-item-mobile.active{color:var(--accent-cyan);font-weight:700}.nav-item-mobile.active svg{transform:translateY(-1px);filter:drop-shadow(0 0 8px rgba(56,189,248,.7))}.nav-item-mobile.active:after{content:"";position:absolute;top:4px;width:24px;height:3px;border-radius:2px;background:var(--accent-cyan);box-shadow:0 0 8px var(--accent-cyan)}.mobile-drawer-overlay{position:fixed;inset:0;background:#000000b3;backdrop-filter:var(--backdrop-blur);z-index:10000;opacity:0;pointer-events:none;transition:opacity .25s cubic-bezier(.4,0,.2,1);display:flex;justify-content:flex-end}.mobile-drawer-overlay.active{opacity:1;pointer-events:auto}.mobile-drawer-content{width:82%;max-width:320px;height:100%;height:100dvh;background:var(--bg-secondary);border-left:1px solid var(--border-subtle);box-shadow:-10px 0 35px #000000b3;display:flex;flex-direction:column;transform:translate(100%);transition:transform .28s cubic-bezier(.4,0,.2,1);padding-bottom:var(--safe-bottom);overflow-y:auto}.mobile-drawer-overlay.active .mobile-drawer-content{transform:translate(0)}@media(max-width:768px){#btn-mobile-menu{display:flex!important}}@keyframes pulse-glow{0%{opacity:.6;transform:scale(.98)}to{opacity:1;transform:scale(1);box-shadow:0 0 10px var(--accent-cyan)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes ripple{0%{transform:scale(.8);opacity:1}to{transform:scale(2.4);opacity:0}}.animate-spin{animation:spin 1s linear infinite}.animate-float{animation:float 3s ease-in-out infinite}.pulse-radar{position:relative}.pulse-radar:after{content:"";position:absolute;inset:-4px;border-radius:inherit;border:2px solid var(--accent-cyan);animation:ripple 2s cubic-bezier(.1,.2,.3,1) infinite;pointer-events:none}.fade-in{animation:fadeIn .2s cubic-bezier(.4,0,.2,1) forwards}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
