:root{--ink:#17211c;--muted:#6d7b73;--line:#e3e9e5;--paper:#fff;--wash:#f6f8f7;--green:#276b4e;--green-dark:#1b523b;--mint:#e5f2eb;--sidebar:#edf3ef;--sidebar-line:#dce6df;--nav-active:#dcebe2;--soft:#f1f5f2;--soft-hover:#e7efe9;--topbar:#fffffff0;--card-hover:#c9d8cf;--focus:#91b9a2;--brand-start:#3a8062;--brand-end:#1d553d;--ambient-a:#e0efe6;--ambient-b:#dfe9e3;--danger:#bd4747;color-scheme:light}:root[data-theme=ocean]{--ink:#17242c;--muted:#6b7982;--line:#e0e8ed;--wash:#f5f8fa;--green:#326a8c;--green-dark:#24536e;--mint:#e1eef4;--sidebar:#ebf2f6;--sidebar-line:#d9e5ec;--nav-active:#dcebf2;--soft:#eff4f7;--soft-hover:#e2edf3;--card-hover:#c6d8e3;--focus:#8cb4ca;--brand-start:#4b85a7;--brand-end:#285c7b;--ambient-a:#deedf4;--ambient-b:#e5ebf1}:root[data-theme=violet]{--ink:#211d2b;--muted:#787180;--line:#e7e2eb;--wash:#f8f6f9;--green:#6b5b91;--green-dark:#514475;--mint:#eee9f5;--sidebar:#f1edf5;--sidebar-line:#e3dce9;--nav-active:#e8e1f1;--soft:#f4f1f6;--soft-hover:#ebe5f0;--card-hover:#d8cde2;--focus:#ad9bc3;--brand-start:#8370a8;--brand-end:#58477d;--ambient-a:#ebe4f2;--ambient-b:#e7e3ed}:root[data-theme=sand]{--ink:#2a211b;--muted:#7f736a;--line:#ebe3dc;--wash:#faf8f5;--green:#9a633f;--green-dark:#75482d;--mint:#f4eae0;--sidebar:#f5efe9;--sidebar-line:#e8ddd3;--nav-active:#efe2d6;--soft:#f7f2ed;--soft-hover:#efe6de;--card-hover:#dfcdbf;--focus:#c6a184;--brand-start:#b27a53;--brand-end:#7e4d2f;--ambient-a:#f2e6da;--ambient-b:#ece5de}*{box-sizing:border-box}body,html{margin:0;min-height:100%;background:var(--wash);color:var(--ink);font-family:Inter,PingFang SC,Microsoft YaHei,system-ui,sans-serif}body{transition:background-color .2s ease,color .2s ease}button,input{font:inherit}a,button{-webkit-tap-highlight-color:transparent}button{cursor:pointer}.app-shell{min-height:100vh;display:grid;grid-template-columns:240px 1fr}.sidebar{position:fixed;inset:0 auto 0 0;width:240px;display:flex;flex-direction:column;gap:28px;padding:26px 18px 20px;background:var(--sidebar);border-right:1px solid var(--sidebar-line)}.brand{display:flex;align-items:center;gap:11px;padding:0 9px;font-size:18px;font-weight:750;letter-spacing:-.4px}.brand-mark{width:54px;height:54px;display:grid;place-items:center;color:white;background:linear-gradient(145deg,var(--brand-start),var(--brand-end));border-radius:18px;box-shadow:0 12px 30px color-mix(in srgb,var(--green) 20%,transparent)}.brand-mark.small{width:34px;height:34px;border-radius:11px;box-shadow:none}nav{display:grid;grid-gap:6px;gap:6px}.nav-item{width:100%;border:0;text-decoration:none;color:#5a6961;background:transparent;display:flex;align-items:center;gap:11px;padding:11px 13px;border-radius:11px;font-size:14px}.nav-item.active,.nav-item:hover{color:var(--green-dark);background:var(--nav-active)}.nav-item.active{font-weight:650}.storage-card{margin-top:auto;display:grid;grid-gap:5px;gap:5px;padding:16px;border:1px solid #d8e4dc;border-radius:15px;background:#f8fbf9}.storage-card strong{margin-top:8px;font-size:16px}.storage-card>span{font-size:12px;color:var(--muted)}.storage-heading{display:flex;align-items:center;gap:8px;color:#52635a;font-size:13px}.storage-meter{height:6px;margin-top:7px;overflow:hidden;background:#e3ebe6;border-radius:999px}.storage-meter i{display:block;height:100%;background:linear-gradient(90deg,#377c5e,#77b68e);border-radius:inherit}.logout{text-align:left}.sidebar form{margin:0}.workspace{grid-column:2;min-width:0}.topbar{height:82px;justify-content:space-between;gap:24px;padding:0 38px;background:var(--topbar);border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);position:-webkit-sticky;position:sticky;top:0;z-index:5}.search,.topbar{display:flex;align-items:center}.search{width:min(440px,45vw);gap:9px;padding:10px 14px;color:var(--muted);background:var(--soft);border:1px solid transparent;border-radius:12px}.search:focus-within{border-color:var(--focus);background:var(--paper);box-shadow:0 0 0 3px color-mix(in srgb,var(--green) 10%,transparent)}.search input{width:100%;border:0;outline:0;background:transparent;color:var(--ink)}.top-actions{display:flex;gap:10px}.danger-button,.primary-button,.secondary-button,.text-button{border:0;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:11px 16px;font-weight:650}.primary-button{color:white;background:var(--green);box-shadow:0 7px 18px color-mix(in srgb,var(--green) 18%,transparent)}.primary-button:hover{background:var(--green-dark)}.primary-button:disabled{opacity:.6}.primary-button.compact{padding:10px 15px}.secondary-button{color:var(--ink);background:var(--paper);border:1px solid var(--line)}.secondary-button:hover{background:var(--soft)}.danger-button{color:var(--danger);background:#fff0f0}.text-button{color:#617067;background:transparent}.content{padding:30px 38px 60px}.breadcrumb{height:24px;display:flex;align-items:center;gap:5px;font-size:13px;color:#89958e}.breadcrumb a{color:#6f7e76;text-decoration:none}.title-row{display:flex;align-items:flex-end;justify-content:space-between;margin:14px 0 25px}.title-row h1{margin:0 0 5px;font-size:28px;letter-spacing:-.8px}.title-row p{margin:0;color:var(--muted);font-size:13px}.file-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));grid-gap:15px;gap:15px}.file-card{position:relative;min-width:0;padding:17px;background:var(--paper);border:1px solid var(--line);border-radius:15px;transition:.18s ease}.file-card:hover{transform:translateY(-2px);border-color:#cddbd2;box-shadow:0 12px 30px #364c3e0d}.file-open{position:absolute;inset:0;z-index:1;border:0;background:transparent;border-radius:15px;cursor:pointer}.preview-open:hover{background:#276b4e08}.file-visual{height:74px;display:flex;align-items:center}.file-visual.image-thumb,.file-visual.video-thumb{height:112px;margin:-4px -4px 13px;overflow:hidden;background:#edf3ef;border-radius:12px}.file-visual.image-thumb img{width:100%;height:100%;object-fit:cover;display:block}.video-thumb{position:relative;justify-content:center;background:#1d2a24}.video-thumb video{width:100%;height:100%;object-fit:cover;display:block;background:#1d2a24}.play-badge{position:absolute;right:9px;bottom:9px;width:29px;height:29px;display:grid;place-items:center;color:white;background:#14281ebd;border:1px solid #ffffff70;border-radius:50%;box-shadow:0 5px 14px #0000002e;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);pointer-events:none}.video-thumb .play-badge svg{width:13px;height:13px;margin-left:1px}.file-card:hover .play-badge{background:color-mix(in srgb,var(--green) 88%,transparent)}.file-visual svg{width:44px;height:44px;stroke-width:1.4}.folder-icon{color:#d09a3c;fill:#f3d99f}.image-icon{color:#5b7eb5}.video-icon{color:#5a7f9c}.audio-icon{color:#7d68a8}.document-icon{color:#b56657}.archive-icon{color:#a66b37}.software-icon{color:#337b61;fill:#dcefe6}.spreadsheet-icon{color:#35845c}.presentation-icon{color:#c76743}.code-icon{color:#5f72ad}.file-icon{color:#7a8780}.file-info{display:grid;min-width:0;grid-gap:4px;gap:4px}.file-info strong{min-height:40px;display:-webkit-box;overflow:hidden;white-space:normal;overflow-wrap:anywhere;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-height:20px;font-size:14px}.file-info strong:hover:after{content:attr(title);position:absolute;z-index:4;left:12px;right:12px;bottom:38px;display:block;padding:9px 11px;color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:10px;box-shadow:0 10px 28px color-mix(in srgb,var(--ink) 15%,transparent);white-space:normal;overflow-wrap:anywhere;line-height:18px;font-size:13px;font-weight:650;pointer-events:none}.file-info span{color:var(--muted);font-size:12px}.item-actions{position:absolute;z-index:2;top:12px;right:10px;display:flex;gap:3px;opacity:0;transition:.15s}.file-card:hover{z-index:3}.file-card:hover .item-actions{opacity:1}.item-actions a,.item-actions button{width:31px;height:31px;display:grid;place-items:center;color:#68766e;background:#f7f9f8;border:0;border-radius:8px}.item-actions a:hover,.item-actions button:hover{color:var(--green);background:#e8f1eb}.item-actions .danger-icon:hover{color:var(--danger);background:#fff0f0}.empty-state{min-height:390px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:var(--muted)}.empty-icon{width:72px;height:72px;display:grid;place-items:center;margin-bottom:16px;color:#769081;background:var(--mint);border-radius:24px}.empty-icon svg{width:32px;height:32px}.empty-state h2{margin:0 0 7px;color:#3e5046;font-size:18px}.empty-state p{margin:0;font-size:14px}.login-shell{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 20% 10%,#e1f0e7 0,transparent 35%),radial-gradient(circle at 90% 90%,#dce9e1 0,transparent 32%),#f7f9f8}.login-card{width:min(420px,100%);padding:42px;background:#ffffffdf;border:1px solid #e2eae5;border-radius:24px;box-shadow:0 30px 80px #28453616;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.login-card h1{margin:18px 0 5px;font-size:30px;letter-spacing:-1px}.eyebrow{margin:28px 0 0;color:#648071;font-size:10px;letter-spacing:2.3px;font-weight:750}.muted{color:var(--muted)}.login-form{display:grid;grid-gap:17px;gap:17px;margin-top:30px}.login-form label,.modal label{display:grid;grid-gap:7px;gap:7px;color:#53635a;font-size:13px;font-weight:600}.login-form input,.modal input{width:100%;border:1px solid #dce5df;border-radius:10px;padding:11px 12px;outline:0;background:white}.login-form input:focus,.modal input:focus{border-color:#75a68a;box-shadow:0 0 0 3px #66a78116}.form-error{margin:0;color:var(--danger);font-size:13px}.modal-backdrop{position:fixed;inset:0;z-index:20;display:grid;place-items:center;padding:20px;background:#14281e63;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.modal{width:min(430px,100%);padding:24px;background:white;border-radius:17px;box-shadow:0 30px 80px #152c2050}.modal h2{margin:0 0 21px;font-size:20px}.modal-actions{display:flex;justify-content:flex-end;align-items:center;gap:8px;margin-top:24px}.modal-actions.spread{justify-content:space-between}.modal-actions>div{display:flex;gap:7px}.modal-actions form{margin:0}.preview-modal{width:min(980px,calc(100vw - 40px));max-height:calc(100vh - 40px);display:flex;flex-direction:column}.preview-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:16px}.preview-heading h2{margin:0 0 5px;overflow-wrap:anywhere}.preview-heading p{margin:0;color:var(--muted);font-size:13px}.preview-body{min-height:260px;max-height:calc(100vh - 210px);display:grid;place-items:center;overflow:auto;background:#f5f8f6;border:1px solid var(--line);border-radius:13px}.preview-body img{max-width:100%;max-height:calc(100vh - 230px);object-fit:contain}.preview-body iframe{width:100%;height:min(680px,calc(100vh - 230px));border:0;background:white}.preview-body video{max-width:100%;max-height:calc(100vh - 230px)}.preview-body audio{width:min(520px,90%)}.item-management-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:18px}.item-management-actions button{flex:1 1}.folder-cover-actions{display:grid;grid-gap:9px;gap:9px;margin-top:18px;padding:14px;background:var(--soft);border:1px solid var(--line);border-radius:12px}.folder-cover-actions>span{color:var(--muted);font-size:12px;font-weight:650}.folder-cover-actions>div{display:flex;align-items:center;gap:8px}.folder-cover-actions .secondary-button{flex:1 1}.folder-cover-actions .form-error{margin:0}.share-modal{width:min(560px,100%);max-height:min(760px,calc(100vh - 40px));overflow:auto}.share-dialog-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.share-dialog-heading>div{display:flex;align-items:center;gap:11px}.share-dialog-heading h2{margin:0 0 4px}.share-dialog-heading p{margin:0;color:var(--muted);font-size:13px}.share-heading-icon{width:38px;height:38px;flex:none;display:grid;place-items:center;color:var(--green);background:var(--mint);border-radius:11px}.icon-button{width:34px;height:34px;display:grid;place-items:center;color:#6d7a73;background:transparent;border:0;border-radius:8px}.icon-button:hover{background:#f0f4f1}.share-form{display:grid;grid-template-columns:1fr 1fr;grid-gap:14px;gap:14px;margin-top:24px;padding:18px;background:#f6f9f7;border:1px solid var(--line);border-radius:13px}.share-form label{display:grid;grid-gap:7px;gap:7px;color:#53635a;font-size:13px;font-weight:600}.share-error,.share-form .primary-button{grid-column:1/-1}.share-history{margin-top:23px}.share-history-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.share-history-title strong{font-size:14px}.share-history-title span{color:var(--muted);font-size:12px}.share-list{display:grid;grid-gap:8px;gap:8px}.share-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px;border:1px solid var(--line);border-radius:11px}.share-row>div:first-child{display:grid;grid-gap:5px;gap:5px;min-width:0}.share-status{width:max-content;padding:2px 7px;color:#2d7654;background:#e5f3eb;border-radius:20px;font-size:11px;font-weight:700}.share-row.expired .share-status,.share-row.revoked .share-status{color:#7a827d;background:#edf0ee}.share-row small{display:flex;align-items:center;gap:5px;color:var(--muted);font-size:11px}.share-row-actions{display:flex;flex:none;gap:5px}.share-row-actions button{width:32px;height:32px;display:grid;place-items:center;color:#617068;background:#f4f7f5;border:0;border-radius:8px}.share-row-actions button:hover{color:var(--green);background:#e4efe8}.share-empty{margin:0;padding:20px;color:var(--muted);background:#f8faf9;border-radius:10px;text-align:center;font-size:13px}.share-shell{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 15% 5%,#dfeee5 0,transparent 35%),radial-gradient(circle at 90% 90%,#e4ece7 0,transparent 32%),#f7f9f8}.share-unlock-card{width:min(430px,100%);padding:42px;background:#fffffff0;border:1px solid #e2eae5;border-radius:24px;box-shadow:0 30px 80px #28453616}.share-unlock-card h1{margin:18px 0 5px;overflow-wrap:anywhere;font-size:27px;letter-spacing:-.7px}.share-expiry{margin:22px 0 0;color:#8a958f;text-align:center;font-size:11px}.invalid-share{display:flex;flex-direction:column;align-items:center;text-align:center}.invalid-share h1{margin-top:5px}.public-share-page{min-height:100vh;background:var(--wash)}.public-share-header{height:72px;display:flex;align-items:center;justify-content:space-between;padding:0 max(24px,calc((100vw - 1120px)/2));background:white;border-bottom:1px solid var(--line)}.public-share-header>span{color:#77847d;font-size:12px}.public-share-content{width:min(1120px,calc(100% - 48px));margin:0 auto;padding:38px 0 70px}.share-title{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin:16px 0 26px}.share-title h1{margin:0 0 5px;font-size:28px}.share-title p{margin:0;color:var(--muted);font-size:13px}.share-title-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:flex-end}.share-title-actions>span{color:#849089;font-size:12px}.compact-link{padding:8px 11px;text-decoration:none;font-size:12px}.public-file-grid .file-card{padding-bottom:17px}.public-download{position:absolute;z-index:2;right:13px;bottom:13px;display:flex;align-items:center;gap:5px;padding:7px 10px;color:var(--green);background:#e7f1eb;border-radius:8px;text-decoration:none;font-size:12px;font-weight:650}.public-download:hover{background:#dcebe2}.batch-download{position:relative;display:flex;align-items:center}.batch-download-message{position:absolute;z-index:4;top:calc(100% + 8px);right:0;width:max-content;max-width:min(320px,80vw);padding:8px 10px;color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:8px;box-shadow:0 10px 24px #20312816;font-size:12px}.download-guide-modal{width:min(390px,calc(100vw - 32px));text-align:center}.download-guide-icon{width:52px;height:52px;display:grid;place-items:center;margin:0 auto 14px;color:white;background:var(--green);border-radius:16px}.download-guide-modal h2{margin:0 0 8px}.download-guide-modal>p{margin:0 0 18px;color:var(--muted)}.download-guide-modal ol{display:grid;grid-gap:10px;gap:10px;margin:0 0 20px;padding:16px 16px 16px 38px;text-align:left;background:var(--soft);border-radius:12px}.download-guide-modal .primary-button{width:100%}.upload-panel{position:fixed;z-index:15;right:24px;bottom:24px;width:min(370px,calc(100vw - 48px));padding:16px;background:var(--paper);border:1px solid var(--line);border-radius:18px;box-shadow:0 24px 60px color-mix(in srgb,var(--ink) 14%,transparent)}.panel-title{display:flex;justify-content:space-between;font-weight:700;font-size:14px}.panel-title button{border:0;background:transparent;color:var(--muted)}.upload-row{margin-top:14px}.upload-row>div:first-child{display:flex;justify-content:space-between;gap:10px;font-size:12px}.upload-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.upload-row small{flex:none;color:var(--muted)}.progress{height:4px;margin-top:7px;overflow:hidden;background:var(--soft-hover);border-radius:5px}.progress i{display:block;height:100%;background:var(--green);transition:width .2s}.progress.error i{background:var(--danger)}.theme-switcher{position:relative;flex:none}.theme-trigger{height:40px;display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:0 13px;color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:11px;font-weight:650}.theme-trigger:hover,.theme-trigger[aria-expanded=true]{color:var(--green-dark);background:var(--soft);border-color:var(--card-hover)}.theme-menu{position:absolute;z-index:12;top:calc(100% + 9px);right:0;width:180px;display:grid;grid-gap:4px;gap:4px;padding:7px;background:var(--paper);border:1px solid var(--line);border-radius:14px;box-shadow:0 18px 45px color-mix(in srgb,var(--ink) 16%,transparent)}.theme-menu button{width:100%;height:40px;display:grid;grid-template-columns:36px 1fr 18px;align-items:center;grid-gap:9px;gap:9px;padding:0 9px;color:var(--ink);background:transparent;border:0;border-radius:9px;text-align:left}.theme-menu button:hover,.theme-menu button[aria-checked=true]{background:var(--soft)}.theme-menu button>svg{color:var(--green)}.theme-swatches{display:flex;align-items:center}.theme-swatches i{width:22px;height:22px;border:2px solid var(--paper);border-radius:50%;box-shadow:0 0 0 1px var(--line)}.theme-swatches i+i{margin-left:-8px}.storage-card{background:color-mix(in srgb,var(--paper) 72%,var(--sidebar));border-color:var(--sidebar-line)}.file-card{border-radius:18px;box-shadow:0 1px 2px color-mix(in srgb,var(--ink) 3%,transparent)}.file-card:hover{border-color:var(--card-hover);box-shadow:0 14px 34px color-mix(in srgb,var(--ink) 8%,transparent)}.folder-thumb{height:112px;justify-content:center;margin:-4px -4px 13px;overflow:hidden;background:var(--soft);border-radius:12px}.folder-thumb img{width:100%;height:100%;display:block;object-fit:cover}.login-shell,.share-shell{background:radial-gradient(circle at 20% 10%,var(--ambient-a) 0,transparent 35%),radial-gradient(circle at 90% 90%,var(--ambient-b) 0,transparent 32%),var(--wash)}.login-card,.modal,.share-unlock-card{background:color-mix(in srgb,var(--paper) 94%,transparent);border:1px solid var(--line)}.public-share-header{background:var(--topbar);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}@media (max-width:760px){.app-shell{display:block}.sidebar{position:fixed;z-index:10;inset:auto 0 0;width:auto;height:66px;padding:7px 16px;flex-direction:row;align-items:center;justify-content:space-around;border:0;border-top:1px solid var(--line)}.brand,.logout,.storage-card{display:none}.sidebar nav{display:flex;width:100%;justify-content:space-around}.nav-item{width:auto;flex-direction:column;gap:2px;padding:5px 18px;font-size:10px}.workspace{padding-bottom:66px}.topbar{height:auto;flex-wrap:wrap;padding:14px 18px;gap:10px}.search{order:2}.search,.top-actions{width:100%}.theme-switcher,.top-actions>button{flex:1 1}.theme-trigger{width:100%}.theme-menu{left:0;right:auto}.content{padding:22px 18px 40px}.file-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.file-card{padding:14px}.item-actions{opacity:1}.title-row h1{font-size:24px}.modal-actions.spread{align-items:stretch;flex-direction:column-reverse}.modal-actions.spread>div{justify-content:flex-end}.share-form{grid-template-columns:1fr}.share-error,.share-form .primary-button{grid-column:1}.share-modal{padding:20px}.share-dialog-heading h2{font-size:18px}.public-share-header{padding:0 18px}.public-share-content{width:calc(100% - 36px);padding-top:25px}.share-title{align-items:flex-start;flex-direction:column}.share-title h1{font-size:24px}.share-unlock-card{padding:32px 26px}}