:root{color-scheme:light;--bg:#f8f8f6;--surface:#fff;--text:#292d2b;--muted:#8a918c;--line:#e9ece8;--accent:#718679;--dark:#29342f;--accent-soft:#e9efea;--danger:#b55c55;--shadow:0 20px 70px rgba(29,42,34,.14);font-family:Inter,"Segoe UI",-apple-system,BlinkMacSystemFont,Arial,sans-serif}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--text);font-size:14px}button,input,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible{outline:3px solid #a9bdb1;outline-offset:3px}a{color:inherit}h1,h2,h3,p{margin-top:0}.hidden{display:none!important}.muted{color:var(--muted)}.eyebrow{font-size:10px;font-weight:750;letter-spacing:2.1px;color:var(--accent);margin-bottom:15px;text-transform:uppercase}.dot{color:#8da496}.btn{border:0;display:inline-flex;gap:9px;align-items:center;justify-content:center;padding:0 17px;border-radius:9px;height:42px;font-weight:600;text-decoration:none;white-space:nowrap;transition:background .15s ease,transform .15s ease}.btn:active{transform:translateY(1px)}.btn svg,.icon-button svg,.nav-icon svg,.search svg{width:17px;height:17px;stroke:currentColor;stroke-width:1.9;fill:none;stroke-linecap:round;stroke-linejoin:round}.btn-dark{background:var(--dark);color:white}.btn-dark:hover{background:#405447}.btn-outline{background:white;border:1px solid #e2e6e2;color:#3f4b43}.btn-outline:hover{background:#f8faf8}.btn-small{height:35px;padding:0 12px;font-size:12px}.btn-danger{background:#f8edeb;color:#a74d4a}.btn-danger:hover{background:#f2dbd7}.icon-button,.close-button{width:34px;height:34px;display:inline-grid;place-items:center;border:0;background:transparent;color:#737e76;border-radius:8px}.icon-button:hover,.close-button:hover{background:#f0f2ef;color:var(--dark)}
/* Login */
.auth-page{min-height:100vh;display:grid;grid-template-columns:minmax(380px,47%) 1fr;background:#fff}.auth-brand{position:relative;display:flex;flex-direction:column;padding:48px 55px;overflow:hidden;background:#697e70;color:#fff}.auth-brand:before{content:"";position:absolute;width:650px;height:650px;border:1px solid rgba(255,255,255,.13);border-radius:50%;bottom:-320px;right:-290px;box-shadow:0 0 0 78px rgba(255,255,255,.025),0 0 0 155px rgba(255,255,255,.025)}.brand-mark{width:28px;height:28px;display:flex;gap:3px;align-items:flex-end}.brand-mark span{width:7px;border-radius:2px;background:#738d7c;transform:skewY(-16deg)}.brand-mark span:nth-child(1){height:13px}.brand-mark span:nth-child(2){height:23px}.brand-mark span:nth-child(3){height:17px}.brand-mark-light span{background:#e8eee8}.auth-brand-copy{position:relative;margin:auto 0;padding-bottom:70px}.auth-brand-copy .wordmark{font-size:21px;font-weight:730;letter-spacing:-.6px;margin-bottom:65px}.auth-brand-copy .dot{color:#d9eadf}.auth-brand h1{font-size:clamp(39px,4.5vw,71px);font-weight:610;letter-spacing:-3px;line-height:1.14;margin-bottom:25px}.auth-brand p{font-size:16px;line-height:1.85;color:#e0e7e0}.auth-brand-bottom{position:relative;display:flex;justify-content:space-between;align-items:center;color:#dde8df;font-size:11px;letter-spacing:1px}.auth-side{display:grid;place-items:center;padding:60px 35px}.auth-card{width:100%;max-width:390px}.auth-card h2{font-size:31px;font-weight:650;letter-spacing:-1.2px;margin-bottom:12px}.auth-card>p{color:#8a928c;line-height:1.7;margin-bottom:38px}.auth-card form{display:flex;flex-direction:column;gap:0}.auth-card label{color:#404b43;font-weight:620;font-size:12px;margin-bottom:10px}.auth-card input,.dialog input{width:100%;height:47px;background:#fafbf9;border:1px solid #e5e9e5;padding:0 15px;border-radius:8px;outline:0;color:#26342c;transition:border .2s}.auth-card input:focus,.dialog input:focus{border-color:#89a494}.auth-card form>input,.signup-extra input{margin-bottom:22px}.signup-extra{display:flex;flex-direction:column}.password-field{position:relative}.password-field input{padding-right:100px}.show-password{position:absolute;right:10px;top:9px;background:transparent;border:0;color:#66796b;font-size:11px;padding:8px}.auth-submit{width:100%;height:49px;margin-top:25px;justify-content:space-between;padding:0 18px}.btn-arrow{font-size:21px;font-weight:400}.auth-switch{margin-top:29px;display:flex;gap:9px;justify-content:center;color:#879189;font-size:13px}.auth-switch button{padding:0;border:0;background:transparent;color:#46604e;font-weight:700}.auth-caption{border-top:1px solid #edf0ec;margin-top:53px;padding-top:22px;color:#9aa19b;font-size:11px;line-height:1.6}.form-message{background:#faf0ee;color:#9f4f47;border-radius:8px;padding:11px 13px;margin-top:14px;font-size:12px;line-height:1.5}.form-message.success{color:#4a725d;background:#eef5ef}.mobile-wordmark{display:none}
/* Application */
.app-shell{display:flex;min-height:100vh}.sidebar{width:239px;min-width:239px;background:#fff;border-right:1px solid var(--line);padding:31px 19px 23px;display:flex;flex-direction:column;min-height:100vh;position:sticky;top:0;height:100vh}.brand{display:flex;gap:10px;align-items:center;font-size:22px;letter-spacing:-.8px;font-weight:730;margin-left:15px;margin-bottom:63px}.brand-mark{width:23px;height:25px;gap:3px}.brand-mark span{width:6px}.brand-mark span:nth-child(1){height:11px}.brand-mark span:nth-child(2){height:20px}.brand-mark span:nth-child(3){height:14px}.nav-caption{color:#9aa29c;font-size:10px;font-weight:740;letter-spacing:1.6px;margin:0 0 13px 15px}.side-nav{display:flex;flex-direction:column;gap:5px}.nav-item{border:0;background:none;color:#78847b;font-weight:610;display:flex;gap:13px;align-items:center;width:100%;height:44px;text-align:left;padding:0 14px;border-radius:9px}.nav-icon{width:18px;height:18px;display:grid;place-items:center}.nav-item:hover{background:#f6f8f6;color:#3a4b40}.nav-item.selected{color:#41624e;background:#edf2ed}.count-badge{margin-left:auto;min-width:19px;height:19px;border-radius:7px;background:#6d8574;color:white;padding:1px 5px;font-size:11px;display:grid;place-items:center}.sidebar-spacer{flex:1}.storage-summary{padding:0 11px 30px}.storage-summary .nav-caption{margin-left:0}.usage-value{font-size:15px;font-weight:670;margin-bottom:13px}.storage-line{height:5px;background:#edf0ec;border-radius:5px;overflow:hidden}.storage-line span{display:block;height:100%;width:0;background:#758f7a;border-radius:5px;transition:width .3s}.storage-note{font-size:10px;line-height:1.5;color:#adb5ad;margin-top:11px}.profile{border-top:1px solid #edf0ed;padding-top:20px;display:flex;gap:10px;align-items:center}.avatar,.top-avatar{width:34px;height:34px;border-radius:10px;background:#e9eee8;color:#526a57;display:grid;place-items:center;font-weight:740}.profile-text{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1}.profile-text strong{font-size:12px;max-width:110px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.profile-text span{font-size:10px;color:#a2aaa3}.main{flex:1;min-width:0}.topbar{height:75px;background:#fff;border-bottom:1px solid var(--line);padding:0 clamp(26px,4.6vw,72px);display:flex;justify-content:space-between;align-items:center}.topbar-context{color:#657169;font-size:12px;font-weight:580}.separator{color:#c3cac4;padding:0 7px}.topbar-actions{display:flex;align-items:center;gap:22px}.server-status{font-size:11px;color:#87938a;display:flex;align-items:center;gap:8px}.status-dot{width:7px;height:7px;background:#8eab97;border-radius:50%}.top-avatar{width:30px;height:30px;font-size:11px}.mobile-menu{display:none}.workspace{max-width:1550px;margin:auto;padding:58px clamp(26px,4.6vw,72px) 70px}.workspace-head{display:flex;justify-content:space-between;align-items:center;gap:22px;margin-bottom:49px}.workspace-head h1{font-size:34px;font-weight:670;letter-spacing:-1.35px;margin:0 0 11px}.workspace-subtitle{color:#99a199;font-size:13px}.head-buttons{display:flex;gap:10px;margin-top:17px}.toolbar{display:flex;justify-content:space-between;align-items:center;gap:25px;border-bottom:1px solid #e1e5e0;padding-bottom:17px;min-height:59px}.breadcrumbs{display:flex;align-items:center;gap:9px;white-space:nowrap;overflow:auto;min-width:80px;color:#919b92;font-size:12px}.breadcrumbs button{border:0;background:transparent;color:#8b978e;white-space:nowrap;padding:6px 0;font-weight:550}.breadcrumbs button:last-child{font-weight:730;color:#415348}.breadcrumbs .crumb-sep{color:#c9d1c9}.toolbar-right{display:flex;align-items:center;gap:21px}.search{height:36px;width:231px;display:flex;align-items:center;gap:10px;padding:0 12px;border:1px solid #e5e8e4;background:white;border-radius:8px;color:#a0aaa2}.search input{border:0;outline:0;background:transparent;min-width:0;width:100%;font-size:12px;color:#3d4b40}.search input::placeholder{color:#afb6ae}.item-count{white-space:nowrap;color:#a0a9a0;font-size:11px}.file-area{background:#fff;border-radius:0 0 12px 12px;border:1px solid #edf0ec;border-top:0;min-height:360px;overflow:hidden}.table-head,.file-row{display:grid;grid-template-columns:minmax(240px,1fr) 128px 128px 155px;align-items:center;gap:14px;padding:0 23px}.table-head{height:46px;font-size:10px;font-weight:710;color:#a1aaa2;letter-spacing:.65px;text-transform:uppercase;border-bottom:1px solid #f0f2ef}.file-row{min-height:66px;border-bottom:1px solid #f1f3f0;transition:background .15s;cursor:default}.file-row:last-child{border-bottom:0}.file-row:hover{background:#fafbf9}.file-name-area{display:flex;gap:13px;align-items:center;min-width:0}.file-icon,.preview-icon{display:grid;place-items:center;width:36px;height:38px;flex:0 0 36px;border-radius:8px;color:#667d6f;background:#edf2ed}.file-icon svg,.preview-icon svg{stroke:currentColor;stroke-width:1.7;fill:none;stroke-linecap:round;stroke-linejoin:round;width:19px;height:19px}.file-icon.folder{background:#f0f0e9;color:#909577}.file-icon.image{background:#edf0ef;color:#758c83}.file-icon.video{background:#eceef3;color:#777e9c}.file-icon.pdf{background:#f6eeee;color:#b18480}.file-icon.doc{background:#edf0f4;color:#778cac}.file-icon.slide{background:#f6f0e9;color:#ad8f70}.file-name-button{border:0;background:none;padding:0;text-align:left;min-width:0;max-width:100%;font-weight:610;color:#35453a;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-name-button:hover{text-decoration:underline;text-underline-offset:3px}.file-detail{font-size:11px;color:#97a098}.file-actions{display:flex;gap:1px;justify-content:flex-end}.file-actions button{width:31px;height:32px;border-radius:7px;color:#849087;border:0;background:transparent;display:grid;place-items:center}.file-actions button:hover{background:#e8eee8;color:#405547}.file-actions button.danger:hover{background:#fbefed;color:#b04a43}.file-actions svg{width:16px;height:16px;stroke:currentColor;stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round}.empty-state{min-height:335px;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:30px}.empty-illustration{height:76px;width:96px;border:1px dashed #d1ddd1;border-radius:16px;background:#f8faf7;display:grid;place-items:center;margin-bottom:22px;color:#78917c}.empty-illustration svg{width:30px;height:30px;stroke:currentColor;fill:none;stroke-width:1.4}.empty-state h3{font-size:16px;margin:0 0 9px;font-weight:680}.empty-state p{color:#9ca79e;font-size:12px;line-height:1.7;max-width:280px}.empty-state .btn{margin-top:12px}.loading-placeholder{padding:40px;color:#9ba59e;text-align:center}.drop-zone{position:fixed;inset:0;z-index:30;background:rgba(241,247,239,.78);backdrop-filter:blur(4px);display:grid;place-items:center;pointer-events:none}.drop-box{width:min(600px,calc(100vw - 50px));height:320px;border:2px dashed #98ac9b;border-radius:20px;background:white;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:17px;color:#8fa194}.drop-box svg{width:42px;height:42px;stroke:#7e9985;fill:none}.drop-box strong{font-size:22px;color:#3e5443}.drop-box>span:last-child{font-size:13px}
/* Admin */
.requests-area{background:#fff;border:1px solid #edf0ec;border-radius:12px;overflow:hidden}.request-card{padding:23px 28px;display:flex;align-items:center;justify-content:space-between;gap:17px;border-bottom:1px solid #eef1ed}.request-card:last-child{border-bottom:0}.request-person{display:flex;align-items:center;gap:15px}.request-avatar{width:43px;height:43px;border-radius:11px;background:#e9f0e9;color:#67806e;display:grid;place-items:center;font-weight:720;font-size:16px}.request-person h3{margin:0 0 5px;font-size:14px}.request-person small{color:#9aa59a;font-size:11px}.request-buttons{display:flex;gap:7px}.admin-empty{min-height:230px}
/* Previews */
.modal-backdrop{position:fixed;inset:0;background:rgba(26,34,29,.58);z-index:50;display:grid;place-items:center;padding:20px}.preview-shell{height:min(91vh,1100px);width:min(1180px,100%);background:#fff;border-radius:14px;box-shadow:var(--shadow);display:flex;flex-direction:column;overflow:hidden}.preview-head{height:77px;min-height:77px;border-bottom:1px solid #e8ece8;padding:0 24px;display:flex;align-items:center;justify-content:space-between;gap:20px}.preview-title-row{display:flex;align-items:center;gap:13px;min-width:0}.preview-head-name{display:flex;flex-direction:column;gap:5px;min-width:0}.preview-head-name strong{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:450px}.preview-head-name small{font-size:11px;color:#9aa39b}.preview-icon{width:31px;height:31px;flex-basis:31px}.preview-icon svg{width:17px;height:17px}.preview-actions{display:flex;align-items:center;gap:13px}.preview-content{flex:1;min-height:0;background:#eff2ef;display:grid;place-items:center;overflow:auto}.preview-content .image-preview{max-width:100%;max-height:100%;object-fit:contain;box-shadow:0 8px 28px rgba(0,0,0,.1)}.preview-content iframe{width:100%;height:100%;border:0;background:#fff}.preview-message{text-align:center;padding:30px;color:#819084;line-height:1.7}.preview-message svg{width:33px;height:33px;stroke:currentColor;fill:none}.preview-message strong{display:block;font-size:15px;margin-top:15px;color:#425346}.preview-message p{font-size:12px;max-width:360px}.video-view{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#161c1a;overflow:hidden}.video-view video{width:100%;min-height:0;flex:1;object-fit:contain;background:#101513}.player-bar{width:100%;padding:18px 24px 12px;background:#1c2420;color:#eef2ee}.player-seek{width:100%;margin:0 0 15px;accent-color:#a3baa9;cursor:pointer;height:4px}.player-bottom{display:flex;align-items:center;gap:18px}.player-control{border:0;background:transparent;color:#e8eeea;display:grid;place-items:center;min-width:27px;min-height:27px}.player-control svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.9}.player-time{color:#a6b6a9;font-size:12px;font-variant-numeric:tabular-nums}.player-space{flex:1}.player-select{font-size:11px;color:#b9c7bc;display:flex;gap:7px;align-items:center}.player-select select{border:1px solid #4d5b50;border-radius:6px;background:#28342d;color:#f1f4f1;padding:6px 6px;font-size:11px;max-width:115px}.video-notice{width:100%;padding:8px 24px;background:#303c35;color:#d2ded3;font-size:11px;line-height:1.5}.dialog{width:min(450px,100%);padding:35px;background:#fff;border-radius:13px;box-shadow:var(--shadow)}.dialog-kicker{font-size:10px;letter-spacing:1.6px;font-weight:730;color:#7d957e;margin-bottom:15px}.dialog h2{font-size:22px;letter-spacing:-.5px;margin:0 0 8px}.dialog p{font-size:12px;color:#929d92;margin-bottom:27px}.dialog-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:25px}.toast-host{position:fixed;right:24px;bottom:24px;z-index:90;display:flex;flex-direction:column;gap:10px}.toast{background:#26362c;color:#f3f7f3;box-shadow:0 12px 38px rgba(0,0,0,.16);padding:13px 17px;border-radius:9px;max-width:370px;min-width:240px;line-height:1.55;font-size:12px}.toast.error{background:#784640}.upload-stack{position:fixed;bottom:24px;left:264px;z-index:35;display:flex;flex-direction:column;gap:9px;max-width:370px}.upload-task{min-width:290px;background:#fff;border:1px solid #e1e9e0;border-radius:10px;padding:15px;box-shadow:0 10px 40px rgba(23,37,26,.1)}.upload-task>div:first-child{display:flex;justify-content:space-between;gap:15px;color:#485648;font-size:12px}.upload-task strong{max-width:240px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.upload-task span{color:#819083}.upload-progress{height:3px;margin-top:12px;background:#eff2ed;border-radius:3px;overflow:hidden}.upload-progress i{display:block;width:0;height:100%;background:#8da797;transition:width .25s}
@media(max-width:1100px){.table-head,.file-row{grid-template-columns:minmax(200px,1fr) 105px 128px}.file-row .file-date,.table-head .file-date{display:none}.workspace-head{align-items:flex-start}.head-buttons{margin-top:30px}}@media(max-width:850px){.sidebar{position:fixed;z-index:40;left:-250px;transition:left .22s;box-shadow:0 0 0 transparent}.sidebar.open{left:0;box-shadow:15px 0 70px #1e312d20}.mobile-menu{display:grid;margin-right:9px}.topbar{justify-content:flex-start}.topbar-actions{margin-left:auto}.server-status{display:none}.workspace{padding-top:34px}.workspace-head{flex-direction:column;align-items:stretch;gap:16px;margin-bottom:30px}.head-buttons{margin-top:0}.upload-stack{left:25px}.auth-brand{padding:35px}.auth-brand-copy h1{font-size:45px}}@media(max-width:680px){.auth-page{display:block;background:#fff}.auth-brand{display:none}.auth-side{min-height:100vh;padding:50px 25px}.mobile-wordmark{display:block;font-size:25px;font-weight:700;margin-bottom:70px;letter-spacing:-1px}.mobile-wordmark span{color:#8fa394}.topbar{height:62px;padding:0 16px}.workspace{padding:31px 17px}.workspace-head h1{font-size:29px}.head-buttons{gap:8px}.head-buttons .btn{flex:1;padding:0 9px;font-size:12px}.toolbar{flex-direction:column;align-items:stretch;gap:12px}.toolbar-right{justify-content:space-between}.search{flex:1;max-width:290px}.file-area{min-height:300px}.table-head,.file-row{grid-template-columns:minmax(0,1fr) 87px;gap:5px;padding:0 13px}.file-row{min-height:64px}.file-row .file-size,.file-row .file-date,.table-head .file-size,.table-head .file-date{display:none}.file-icon{width:32px;height:34px;flex-basis:32px}.file-actions{gap:0}.file-actions button{width:28px}.file-name-button{font-size:12px}.preview-shell{height:96vh;width:100%;border-radius:10px}.modal-backdrop{padding:7px}.preview-head{padding:0 12px;height:65px;min-height:65px}.preview-actions{gap:4px}.preview-actions .btn{font-size:0;gap:0;padding:0;width:32px}.preview-actions .btn svg{width:17px}.preview-head-name strong{max-width:150px}.player-bar{padding:12px 8px}.player-bottom{gap:8px;flex-wrap:wrap}.player-select{font-size:0}.player-select select{font-size:10px}.request-card{flex-direction:column;align-items:stretch;padding:18px}.request-buttons{justify-content:flex-end}.toast-host{right:12px;left:12px;bottom:14px}.toast{max-width:none}.upload-stack{left:12px;bottom:15px}}

/* Grid view: deliberately quiet, editorial gallery layout */
.view-toggle{display:flex;padding:3px;gap:2px;background:#f0f3ef;border:1px solid #e8ece8;border-radius:8px}.view-toggle button{width:27px;height:26px;border:0;border-radius:5px;background:transparent;color:#9ca79d;display:grid;place-items:center}.view-toggle button.active{background:#fff;color:#45624e;box-shadow:0 1px 4px #45544817}.view-toggle svg{width:15px;height:15px;stroke:currentColor;stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:22px;padding:25px}.gallery-tile{min-width:0;background:transparent;border:0;padding:0;text-align:left;color:#37483c}.gallery-preview{height:154px;width:100%;display:grid;place-items:center;overflow:hidden;border-radius:9px;background:#f0f3f0;border:1px solid #eef1ee}.gallery-preview img{width:100%;height:100%;object-fit:cover;transition:transform .2s}.gallery-tile:hover .gallery-preview img{transform:scale(1.035)}.gallery-symbol{display:grid;place-items:center;width:52px;height:52px;border-radius:12px;background:#e6ede6;color:#748d7a}.gallery-symbol svg{width:27px;height:27px;stroke:currentColor;stroke-width:1.6;fill:none;stroke-linejoin:round;stroke-linecap:round}.gallery-preview.folder{background:#f4f3ed}.gallery-preview.folder .gallery-symbol{background:#e9e8da;color:#999b77}.gallery-preview.video{background:#edf0f1}.gallery-filename{font-size:12px;font-weight:650;display:block;margin:12px 2px 5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gallery-caption{display:block;color:#9ea8a0;font-size:11px;margin-left:2px}@media(max-width:680px){.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;padding:12px}.gallery-preview{height:126px}.toolbar-right{gap:7px}.item-count{display:none}}

.volume-area{display:flex;gap:7px;align-items:center;color:#c4d1c7}.volume-area svg{width:16px;height:16px;stroke:currentColor;stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round}.volume-area input{width:72px;accent-color:#a3baa9;height:3px;cursor:pointer}@media(max-width:680px){.volume-area{display:none}}
