html,body,#root{height:100%}body,h1,h2,h3,p{margin:0}:root{--bg:#f8f4f7;--surface:#fff;--border:#e5e7eb;--text:#14161a;--text-muted:#6b7280;--text-faint:#9ca3af;--accent:#2616d4;--accent-hover:#5445dd;--accent-soft:#eef2ff;--danger:#dc2626;--danger-soft:#fef2f2;--radius-sm:8px;--radius-md:12px;--radius-lg:18px;--shadow-sm:0 1px 2px #1018280f;--shadow-md:0 8px 24px #10182814;--shadow-lg:0 24px 48px #10182824}:root[data-theme=dark]{--bg:#14151a;--surface:#1c1e25;--border:#2c2f38;--text:#f0f1f4;--text-muted:#a3a8b4;--text-faint:#6f7480;--accent:#8b7ff0;--accent-hover:#a094ff;--accent-soft:#8b7ff029;--danger:#f87171;--danger-soft:#f8717124;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 8px 24px #00000059;--shadow-lg:0 24px 48px #00000073}*{box-sizing:border-box}@media (prefers-reduced-motion:reduce){*{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}button:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;margin:0;font-family:Inter,system-ui,sans-serif}button,input,select{font-family:inherit}.brand{align-items:center;gap:10px;display:flex}.brand-mark{background:var(--text);width:32px;height:32px;color:var(--surface);border-radius:9px;place-items:center;font-size:15px;font-weight:700;display:grid}.brand-name{letter-spacing:-.01em;font-size:17px;font-weight:700}.auth-page{background:radial-gradient(circle at 15% 10%, #eef2ff 0%, transparent 45%), radial-gradient(circle at 85% 90%, #f5f3ff 0%, transparent 45%), var(--bg);place-items:center;min-height:100vh;padding:24px;display:grid}.auth-card{background:var(--surface);border-radius:var(--radius-lg);width:100%;max-width:380px;box-shadow:var(--shadow-lg);border:1px solid var(--border);flex-direction:column;gap:16px;padding:36px 32px;display:flex}.auth-card .brand{justify-content:center}.auth-subtitle{text-align:center;color:var(--text-muted);margin:-8px 0 4px;font-size:14px}.tabs{background:var(--bg);border-radius:var(--radius-sm);gap:4px;padding:4px;display:flex}.tabs button{cursor:pointer;color:var(--text-muted);background:0 0;border:none;border-radius:6px;flex:1;padding:8px;font-size:13.5px;font-weight:500;transition:background .15s,color .15s}.tabs button.active{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm)}.theme-tabs{max-width:260px;margin-bottom:4px}.field{flex-direction:column;gap:6px;display:flex}.change-password-form{flex-direction:column;gap:14px;max-width:360px;display:flex}.success-text{color:var(--accent);font-size:13.5px;font-weight:600}.field span{color:var(--text-muted);font-size:13px;font-weight:500}.consent-field{color:var(--text-muted);cursor:pointer;align-items:flex-start;gap:8px;font-size:13px;display:flex}.consent-field input{cursor:pointer;flex-shrink:0;margin-top:2px}.consent-field a{color:var(--accent)}input{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);outline:none;padding:10px 12px;font-size:14px;transition:border-color .15s,box-shadow .15s}input::placeholder{color:var(--text-faint)}input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.primary-button{border-radius:var(--radius-sm);background:var(--accent);color:#fff;cursor:pointer;border:none;justify-content:center;align-items:center;gap:8px;padding:10px 16px;font-size:14px;font-weight:600;transition:background .15s,transform 50ms;display:inline-flex}.primary-button:hover{background:var(--accent-hover)}.primary-button:active{transform:scale(.98)}.primary-button:disabled{opacity:.6;cursor:default}.error{color:var(--danger);margin:0;font-size:13px}.error.banner{background:var(--danger-soft);border-radius:var(--radius-sm);margin:0 0 16px;padding:10px 14px}.app-shell{background:var(--bg);grid-template-columns:258px 1fr;min-height:100vh;display:grid}.sidebar{background:var(--surface);border-right:1px solid var(--border);z-index:1;flex-direction:column;gap:26px;padding:22px 16px;display:flex;position:relative;box-shadow:1px 0 #10182805,4px 0 24px -18px #1018282e}.sidebar-section{flex-direction:column;gap:8px;display:flex}.sidebar-section.grow{flex:1;min-height:0}.sidebar-label{text-transform:uppercase;letter-spacing:.06em;color:var(--text-faint);padding:0 4px;font-size:11px;font-weight:600}.sidebar-card{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-md);padding:12px}.org-switcher{position:relative}.org-switcher__trigger{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);width:100%;color:var(--text);cursor:pointer;justify-content:space-between;align-items:center;gap:8px;padding:9px 10px;font-size:13.5px;font-weight:500;transition:border-color .15s,box-shadow .15s;display:flex}.org-switcher__trigger:hover{border-color:var(--accent)}.org-switcher__name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.org-switcher__trigger svg{color:var(--text-faint);flex-shrink:0}.org-switcher__menu{z-index:50;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);max-height:260px;box-shadow:var(--shadow-lg);margin:0;padding:6px;list-style:none;position:absolute;top:calc(100% + 6px);left:0;right:0;overflow-y:auto}.org-switcher__menu button{border-radius:var(--radius-sm);width:100%;color:var(--text);text-align:left;cursor:pointer;background:0 0;border:none;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;font-size:13.5px;transition:background .15s,color .15s;display:flex}.org-switcher__menu button:hover{background:var(--accent-soft);color:var(--accent)}.org-switcher__menu button.active{color:var(--accent);font-weight:600}.org-switcher__item-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.org-switcher__menu svg{flex-shrink:0}.storage-meter{flex-direction:column;gap:5px;padding:2px 4px 0;display:flex}.storage-meter__bar{background:var(--border);border-radius:999px;height:5px;overflow:hidden}.storage-meter__fill{background:var(--accent);border-radius:inherit;height:100%;transition:width .2s}.storage-meter__fill--danger{background:var(--danger)}.storage-meter__label{color:var(--text-faint);font-size:11.5px}.ghost-button{border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:8px;padding:8px 10px;font-size:13.5px;font-weight:500;transition:background .15s,color .15s;display:flex}.ghost-button:hover{background:var(--bg);color:var(--text)}.ghost-button.logout{color:var(--danger);margin-top:auto}.ghost-button.logout:hover{background:var(--danger-soft)}.ghost-button.danger{color:var(--danger)}.ghost-button.danger:hover{background:var(--danger-soft)}.ghost-button.active{background:var(--accent-soft);color:var(--accent);font-weight:600}.sidebar-nav{flex-direction:column;gap:2px;display:flex}.sidebar-nav button{border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:10px;padding:9px 10px;font-size:14px;font-weight:500;transition:background .15s,color .15s;display:flex}.sidebar-nav button:hover{background:var(--bg);color:var(--text)}.sidebar-nav button.active{background:var(--accent-soft);color:var(--accent);font-weight:600}.inline-add{gap:6px;display:flex}.inline-add input{flex:1;padding:7px 10px;font-size:13px}.inline-add button{border-radius:var(--radius-sm);background:var(--accent);color:#fff;cursor:pointer;border:none;flex-shrink:0;place-items:center;width:30px;display:grid}.folder-list{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.folder-list li{border-radius:var(--radius-sm);cursor:pointer;color:var(--text-muted);align-items:center;gap:10px;padding:8px 10px;font-size:13.5px;transition:background .15s,color .15s;display:flex}.folder-list li:hover{background:var(--bg);color:var(--text)}.folder-list li.active{background:var(--accent-soft);color:var(--accent);font-weight:600}.folder-list li.folder-list__unfiled{border-bottom:1px solid var(--border);margin-bottom:6px;padding-bottom:12px}.main{width:100%;max-width:1080px;padding:36px 44px 60px;position:relative}.main-content{z-index:1;position:relative}.bg-shards{z-index:0;pointer-events:none;position:fixed;inset:0;overflow:hidden}.shard{background:linear-gradient(135deg, var(--accent) 0%, #8b7ff0 100%);clip-path:polygon(22% 0%,100% 12%,78% 100%,0% 86%);filter:blur(1px);will-change:top, left;animation-timing-function:linear;animation-iteration-count:infinite;position:absolute}.shard-a{opacity:.1;width:420px;height:640px;animation-name:shard-a-fall;animation-duration:24s}.shard-b{opacity:.08;background:linear-gradient(135deg, #a996ff 0%, var(--accent) 100%);width:280px;height:440px;animation-name:shard-b-fall;animation-duration:30s;animation-delay:-10s}.shard-c{opacity:.06;width:540px;height:780px;animation-name:shard-c-fall;animation-duration:38s;animation-delay:-22s}@keyframes shard-a-fall{0%{top:-35%;left:105%;transform:rotate(-16deg)}to{top:115%;left:-35%;transform:rotate(-16deg)}}@keyframes shard-b-fall{0%{top:-25%;left:120%;transform:rotate(-16deg)}to{top:125%;left:-25%;transform:rotate(-16deg)}}@keyframes shard-c-fall{0%{top:-45%;left:95%;transform:rotate(-16deg)}to{top:105%;left:-50%;transform:rotate(-16deg)}}@media (width>=1400px){.main{max-width:1180px;padding:44px 56px 64px}}@media (width>=1920px){.main{max-width:1320px;margin:0 auto}}@media (width>=2560px){.main{max-width:1480px}}.topbar{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:28px;display:flex}.topbar h1{letter-spacing:-.015em;margin:0;font-size:26px}.breadcrumb{color:var(--text-muted);margin:4px 0 0;font-size:13.5px}.upload-button{cursor:pointer;flex-shrink:0}.empty-state{border:1px dashed var(--border);border-radius:var(--radius-lg);color:var(--text-faint);background:var(--surface);flex-direction:column;align-items:center;gap:6px;padding:64px 24px;display:flex}.empty-state p{color:var(--text-muted);margin:8px 0 0;font-size:15px;font-weight:600}.empty-state span{font-size:13px}.file-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.file-row-skeleton{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);align-items:center;gap:14px;padding:12px 14px;display:flex}.skeleton{border-radius:var(--radius-sm);background:linear-gradient(90deg, var(--bg) 25%, var(--border) 37%, var(--bg) 63%);background-size:400% 100%;animation:1.4s infinite skeleton-shimmer;display:block}@keyframes skeleton-shimmer{0%{background-position:100%}to{background-position:0}}.skeleton-avatar{border-radius:var(--radius-sm);flex-shrink:0;width:38px;height:38px}.skeleton-line{flex:1;height:14px}.skeleton-size{flex-shrink:0;width:48px;height:12px}@media (prefers-reduced-motion:reduce){.skeleton{animation:none}}@keyframes file-row-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.file-row{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);cursor:pointer;align-items:center;gap:14px;padding:12px 14px;transition:box-shadow .15s,border-color .15s,transform .1s;animation:.25s both file-row-in;display:flex}.file-list>li:nth-child(2){animation-delay:25ms}.file-list>li:nth-child(3){animation-delay:50ms}.file-list>li:nth-child(4){animation-delay:75ms}.file-list>li:nth-child(n+5){animation-delay:.1s}.file-row:hover{box-shadow:var(--shadow-md);border-color:#d8dae0}.file-row:active{transform:scale(.995)}.file-avatar{border-radius:var(--radius-sm);background:var(--accent-soft);width:38px;height:38px;color:var(--accent);letter-spacing:.02em;flex-shrink:0;place-items:center;font-size:10.5px;font-weight:700;display:grid}.file-main{flex-direction:column;flex:1;gap:6px;min-width:0;display:flex}.file-name{white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:6px;font-size:14px;font-weight:500;display:inline-flex;overflow:hidden}.file-name svg{color:var(--accent);flex-shrink:0}.file-meta-line{color:var(--text-faint);font-size:12px}.tags{flex-wrap:wrap;gap:6px;display:flex}.tag{background:var(--accent-soft);color:var(--accent);border-radius:999px;padding:2px 9px;font-size:11.5px;font-weight:600}.file-size{color:var(--text-faint);text-align:right;flex-shrink:0;width:64px;font-size:12.5px}.file-actions{flex-shrink:0;gap:4px;display:flex}.icon-button{border-radius:var(--radius-sm);width:32px;height:32px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;place-items:center;transition:background .15s,color .15s;display:grid}.icon-button:hover{background:var(--accent-soft);color:var(--accent)}.icon-button.danger:hover{background:var(--danger-soft);color:var(--danger)}.context-menu{z-index:200;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);min-width:180px;box-shadow:var(--shadow-lg);margin:0;padding:6px;list-style:none;position:fixed}.context-menu li+li{margin-top:2px}.context-menu button{border-radius:var(--radius-sm);width:100%;color:var(--text);text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;gap:8px;padding:8px 10px;font-size:13px;transition:background .15s,color .15s;display:flex}.context-menu button:hover{background:var(--accent-soft);color:var(--accent)}.context-menu button.danger:hover{background:var(--danger-soft);color:var(--danger)}.section-title{text-transform:uppercase;letter-spacing:.04em;color:var(--text-faint);margin:0 0 14px;font-size:13px;font-weight:700}.file-table-head{text-transform:uppercase;letter-spacing:.04em;color:var(--text-faint);justify-content:space-between;padding:0 14px 8px;font-size:11.5px;font-weight:600;display:flex}.dropzone{border-radius:var(--radius-lg);outline-offset:6px;outline:2px dashed #0000;transition:background .15s,outline-color .15s}.dropzone.is-dragover{background:var(--accent-soft);outline-color:var(--accent)}.upload-queue{flex-direction:column;gap:8px;margin-bottom:20px;display:flex}.upload-task{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);align-items:center;gap:12px;padding:10px 14px;font-size:13px;display:flex}.upload-task__name{white-space:nowrap;text-overflow:ellipsis;flex:none;max-width:220px;font-weight:500;overflow:hidden}.upload-task__bar{background:var(--bg);border-radius:100px;flex:1;height:6px;overflow:hidden}.upload-task__fill{background:var(--accent);height:100%;transition:width .15s}.upload-task__status{color:var(--text-muted);text-align:right;flex:none;width:70px;font-size:12px}.search-bar{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text-faint);align-items:center;gap:10px;margin-bottom:20px;padding:12px 16px;display:flex}.search-bar input{color:var(--text);background:0 0;border:none;flex:1;font-size:15px}.search-bar input:focus{outline:none}.chip-row{flex-wrap:wrap;gap:8px;margin-bottom:14px;display:flex}.chip{background:var(--surface);border:1px solid var(--border);color:var(--text-muted);cursor:pointer;border-radius:100px;padding:8px 14px;font-size:12.5px;font-weight:600}.chip:hover{background:var(--accent-soft);color:var(--accent)}.hint-text{color:var(--text-faint);align-items:center;gap:6px;font-size:12.5px;line-height:1.5;display:flex}.settings-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);margin-bottom:16px;padding:20px}@keyframes modal-fade-in{0%{opacity:0}to{opacity:1}}@keyframes modal-pop-in{0%{opacity:0;transform:scale(.97)translateY(6px)}to{opacity:1;transform:scale(1)translateY(0)}}.modal-overlay{z-index:100;background:#14161a80;place-items:center;padding:24px;animation:.15s both modal-fade-in;display:grid;position:fixed;inset:0}.modal-panel{background:var(--surface);border-radius:var(--radius-lg);width:100%;max-width:560px;max-height:88vh;box-shadow:var(--shadow-lg);flex-direction:column;animation:.18s cubic-bezier(.22,.9,.3,1) both modal-pop-in;display:flex;overflow:hidden}.modal-header{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;padding:16px 18px;display:flex}.modal-header h2{text-overflow:ellipsis;white-space:nowrap;font-size:15px;font-weight:600;overflow:hidden}.modal-preview{background:var(--bg);flex:1;justify-content:center;align-items:center;min-height:220px;display:flex;overflow:auto}.modal-preview img{max-width:100%;max-height:60vh;display:block}.modal-preview-image{cursor:zoom-in}.lightbox-overlay{z-index:300;overscroll-behavior:contain;background:#0a0b0ee6;place-items:center;display:grid;position:fixed;inset:0}.lightbox-image{touch-action:none;-webkit-user-select:none;user-select:none;max-width:90vw;max-height:90vh;transition:transform 50ms linear}.lightbox-toolbar{background:var(--surface);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);align-items:center;gap:4px;padding:6px;display:flex;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.lightbox-zoom-level{text-align:center;min-width:48px;color:var(--text-muted);font-size:13px;font-weight:600}.lightbox-close{background:var(--surface);box-shadow:var(--shadow-md);position:fixed;top:20px;right:20px}.modal-preview iframe{border:none;width:100%;height:60vh}.preview-unsupported{color:var(--text-faint);flex-direction:column;align-items:center;gap:10px;padding:40px;display:flex}.preview-unsupported p{color:var(--text-muted);font-size:13px}.preview-loading{color:var(--text-faint);font-size:13px}.ai-summary{background:var(--accent-soft);color:var(--accent-hover);border-bottom:1px solid var(--border);flex-shrink:0;align-items:flex-start;gap:8px;padding:12px 18px;font-size:13px;display:flex}.ai-summary svg{flex-shrink:0;margin-top:1px}.modal-footer-left{gap:8px;display:flex}.ghost-button:disabled{opacity:.6;cursor:default}.modal-meta{border-bottom:1px solid var(--border);flex-shrink:0;grid-template-columns:1fr 1fr;gap:14px;margin:0;padding:16px 18px;display:grid}.modal-meta dt{text-transform:uppercase;letter-spacing:.05em;color:var(--text-faint);margin-bottom:4px;font-size:11px;font-weight:600}.modal-meta dd{margin:0;font-size:13.5px}.modal-footer{flex-shrink:0;justify-content:space-between;align-items:center;padding:14px 18px;display:flex}@media (width<=720px){.app-shell{grid-template-columns:1fr}.sidebar{border-right:none;border-bottom:1px solid var(--border)}.main{padding:24px 20px}}
