@font-face{font-family:Inter;src:url('fonts/InterVariable.woff2') format('woff2');font-weight:100 900;font-display:swap}
:root{--dn-font-family:Inter,sans-serif;--dn-nova-primary:#6e44c1;--dn-nova-mid:#8f44c1;--dn-nova-bright:#a644c1;--dn-nova-pale:#d8b4fe;--bg:#fff;--soft:#f8f5fc;--selected:#f3ecfa;--text:#201529;--muted:#6c6176;--line:#e9e2ee;--danger:#b42336;--success:#21734b;--radius:12px;--fast:120ms;--ui:180ms;--ease:cubic-bezier(.23,1,.32,1);color-scheme:light}
:root[data-theme=dark]{--bg:#0d0712;--soft:#15091d;--selected:#210b2d;--text:#f7f2fc;--muted:#c0b1ce;--line:#35233f;--dn-nova-primary:#b18be8;--danger:#ff9ca7;--success:#85d8ac;color-scheme:dark}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:16px/1.5 var(--dn-font-family);-webkit-font-smoothing:antialiased}::selection{background:var(--dn-nova-pale);color:#210b2d}a{color:var(--dn-nova-primary);text-underline-offset:4px}button,input,select,textarea{font:inherit}button,.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 16px;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg);color:var(--text);font-size:14px;font-weight:600;cursor:pointer;text-decoration:none;transition:background-color var(--ui) ease,border-color var(--ui) ease,opacity var(--fast) ease}button:disabled{opacity:.5;cursor:wait}button.primary,.button.primary{background:#6e44c1;color:#fff;border-color:#6e44c1}.quiet{border:0;background:transparent;color:var(--muted)}.danger{color:var(--danger)}.full{width:100%}input:not([type=checkbox]):not([type=hidden]),select,textarea{min-height:44px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--text);padding:10px 12px;max-width:100%;caret-color:var(--dn-nova-primary)}input::placeholder{color:var(--muted)}input[type=checkbox]{width:18px;height:18px;accent-color:var(--dn-nova-primary);cursor:pointer}label{font-size:14px;font-weight:500}h1,h2,p{margin-top:0}h1{font-size:32px;line-height:1.2;letter-spacing:-.025em;font-weight:600;margin-bottom:12px}h2{font-size:20px;line-height:1.35;font-weight:600;margin-bottom:12px}small,.muted{color:var(--muted)}small{font-size:12px}td small{display:block}.icon{width:21px;height:21px;flex:none}.icon-button{width:44px;padding:10px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}:focus-visible{outline:3px solid var(--dn-nova-primary);outline-offset:3px}.skip{position:fixed;top:-80px;left:16px;z-index:20;background:var(--bg);padding:12px}.skip:focus{top:16px}[hidden]{display:none!important}
.app-shell{display:grid;grid-template-columns:260px minmax(0,1fr);min-height:100dvh}.sidebar{display:flex;flex-direction:column;background:var(--soft);padding:28px 16px 20px;border-right:1px solid var(--line);position:sticky;top:0;height:100dvh;overflow:auto}.brand{display:flex;align-items:center;gap:12px;padding:0 8px 28px;color:var(--text);text-decoration:none;font-size:18px;font-weight:600}.brand img{object-fit:contain;width:64px;height:64px}.sidebar nav{display:flex;flex-direction:column;gap:4px}.sidebar nav a{display:flex;align-items:center;gap:12px;padding:12px 16px;border-radius:10px;color:var(--muted);text-decoration:none;font-size:14px;font-weight:500}.sidebar nav a[aria-current]{background:var(--selected);color:var(--dn-nova-primary);font-weight:600}.nav-label{font-size:12px;color:var(--muted);margin:24px 16px 8px}.sidebar-bottom{display:flex;align-items:center;justify-content:space-between;margin-top:auto;padding:24px 12px 0;font-size:12px;gap:4px}.sidebar-bottom>a{color:var(--muted)}.topbar{height:88px;display:flex;align-items:center;justify-content:space-between;padding:0 40px;border-bottom:1px solid var(--line);gap:16px}.workspace-label{color:var(--muted);font-size:14px}.top-actions{display:flex;align-items:center;gap:20px}.profile-link{display:flex;align-items:center;gap:12px;color:var(--text);text-decoration:none;font-size:14px}.avatar{height:36px;width:36px;object-fit:cover;border-radius:50%;flex:none}.initials{display:inline-grid;place-items:center;background:var(--selected);color:var(--dn-nova-primary);font-weight:600}.content{padding:40px;max-width:1680px;margin:auto}.page-heading{display:flex;justify-content:space-between;gap:24px;align-items:center;margin-bottom:32px}.page-heading h1:last-child{margin-bottom:0}.page-heading p{margin-bottom:0}.toolbar{display:flex;gap:8px;align-items:center}.mobile-menu{display:none}.quota{padding:32px 16px 8px;margin-top:auto;color:var(--muted);font-size:12px}.quota p{margin:8px 0}.quota progress{width:100%;height:6px}.quota+.sidebar-bottom{margin-top:0}progress{accent-color:var(--dn-nova-primary);border:0;border-radius:8px;height:8px;overflow:hidden;background:var(--line)}progress::-webkit-progress-bar{background:var(--line)}progress::-webkit-progress-value{background:var(--dn-nova-primary);border-radius:8px}
.public-content{min-height:100dvh;display:grid;place-items:center;padding:32px;background:var(--soft)}.login{width:100%;max-width:360px;text-align:center}.login-logo{display:block;object-fit:contain;margin:0 auto 32px}.login h1{font-size:32px}.login>.muted{font-size:14px;margin-bottom:40px}.login-form{text-align:left}.login-form p{margin-bottom:24px}.login-form label{display:block;margin-bottom:8px}.login-form input{width:100%}.login-form button{margin-top:8px}.errorlist{list-style:none;padding:0;color:var(--danger);font-size:14px}.error,.errorlist li{margin:8px 0}.error{color:var(--danger)}.service-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,360px));gap:24px}.service-card{display:block;border:1px solid var(--line);border-radius:16px;padding:32px;text-decoration:none;color:var(--text);transition:border-color var(--ui) ease,background-color var(--ui) ease}.service-symbol{color:var(--dn-nova-primary);margin-bottom:32px}.service-symbol .icon{width:40px;height:40px}.service-card h2{font-size:24px}.service-card p{font-size:14px;min-height:44px}.service-open{display:flex;align-items:center;justify-content:space-between;padding-top:24px;color:var(--dn-nova-primary);font-size:14px;font-weight:600}
.form-layout{max-width:560px}.form-layout>p{margin-bottom:24px}.form-layout>p>label{display:block;margin-bottom:8px}.form-layout input:not([type=checkbox]),.form-layout select{width:100%}.form-layout .helptext{display:block;color:var(--muted);font-size:12px;margin-top:8px}.form-layout ul{font-size:12px;color:var(--muted);padding-left:20px}.form-layout ul.errorlist{padding-left:0;color:var(--danger)}.form-actions{display:flex;align-items:center;gap:16px;margin-top:32px}.profile-layout{display:grid;grid-template-columns:minmax(280px,560px) minmax(240px,1fr);gap:64px}.profile-summary{padding-left:40px;border-left:1px solid var(--line)}dl{display:grid;grid-template-columns:minmax(120px,1fr) minmax(100px,1fr);gap:16px;font-size:14px}dt{color:var(--muted)}dd{margin:0;overflow-wrap:anywhere}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;border-bottom:1px solid var(--line);padding-bottom:32px;margin-bottom:40px}.stats span{display:block;font-size:14px;color:var(--muted);margin-bottom:8px}.stats strong{font-size:32px;font-weight:600;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.notice,.messages{background:var(--selected);padding:16px 20px;border-radius:12px;margin-bottom:24px}.messages p:last-child{margin:0}.warning{background:#fff4db;color:#6f4600}.system-facts{max-width:700px;margin-bottom:48px}.path{overflow-wrap:anywhere;font-size:12px}.table-scroll{overflow-x:auto;min-height:160px}table{width:100%;border-collapse:collapse;text-align:left;font-size:14px}th{font-size:12px;color:var(--muted);font-weight:500;padding:12px 16px;border-bottom:1px solid var(--line);white-space:nowrap}td{padding:16px;border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums}td a{color:var(--text);text-decoration:none}.person{display:flex;align-items:center;gap:12px}.status{font-size:12px;white-space:nowrap}.good{color:var(--success)}.search{display:flex;align-items:center;gap:12px;max-width:560px;border:1px solid var(--line);border-radius:12px;padding:0 12px;background:var(--soft)}.search input:not([type=checkbox]){border:0;background:transparent;min-width:0;flex:1;padding-left:0}.search>.icon{color:var(--muted)}.file-controls{display:flex;justify-content:space-between;gap:20px;margin-bottom:24px}.file-controls .search{flex:1}.file-controls select{font-size:14px}.file-name{display:flex;align-items:center;gap:12px;min-width:240px;max-width:560px}.file-name>a,.file-name>span:not(.file-icon):not(.star-marker){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-icon{display:inline-flex;width:36px;height:40px;align-items:center;justify-content:center;color:var(--muted);flex:none}.folder-icon{color:var(--dn-nova-primary)}.star-marker{color:var(--dn-nova-primary);display:flex}.star-marker .icon{width:14px;height:14px}.file-type{font-size:12px;color:var(--muted);max-width:120px;overflow:hidden;text-overflow:ellipsis}.check-column{width:40px}.file-menu{position:relative}.file-menu summary{cursor:pointer;display:flex;align-items:center;justify-content:center;width:36px;height:36px;list-style:none;border-radius:8px}.file-menu summary::-webkit-details-marker{display:none}.file-menu>div{position:absolute;right:0;top:40px;z-index:5;width:210px;border:1px solid var(--line);background:var(--bg);border-radius:12px;padding:8px;box-shadow:0 8px 24px #210b2d14}.file-menu button,.file-menu a{display:block;text-align:left;width:100%;border:0;padding:10px 12px;font-size:14px;border-radius:8px;font-weight:400;min-height:40px}.empty{text-align:center;padding:80px 24px;color:var(--muted)}.empty>.icon{width:48px;height:48px;margin-bottom:24px;color:var(--dn-nova-primary)}.empty h2{color:var(--text)}.empty p{font-size:14px}.empty-row td{border-bottom:0}.breadcrumbs{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:12px;margin-bottom:12px}.selection{display:flex;gap:12px;align-items:center;flex-wrap:wrap;background:var(--selected);padding:12px 16px;margin-bottom:16px;border-radius:12px;font-size:14px}.pagination{display:flex;gap:24px;justify-content:center;font-size:14px;margin-top:32px}.dragging{outline:2px dashed var(--dn-nova-primary);outline-offset:8px;background:var(--selected)}.upload-panel{position:fixed;bottom:24px;right:24px;width:min(400px,calc(100vw - 48px));border:1px solid var(--line);border-radius:16px;background:var(--bg);padding:24px;z-index:8;box-shadow:0 12px 48px #210b2d18}.upload-panel h2{font-size:16px}.upload-panel p{font-size:14px;overflow-wrap:anywhere}.upload-panel progress{width:100%}.upload-panel button{font-size:12px}.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);padding:16px 24px;background:var(--text);color:var(--bg);border-radius:12px;max-width:90vw;z-index:30;font-size:14px}dialog{border:1px solid var(--line);border-radius:20px;background:var(--bg);color:var(--text);padding:32px;width:min(520px,calc(100vw - 32px));max-height:85dvh;box-shadow:0 24px 80px #0002}dialog::backdrop{background:#0d07124d}.dialog-heading{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:20px}.dialog-heading h2{margin:0}#dialog-fields label{display:block;margin:16px 0 8px}#dialog-fields input:not([type=checkbox]),#dialog-fields select{width:100%}#dialog-fields p{overflow-wrap:anywhere}.share-item{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:12px 0;font-size:12px;border-bottom:1px solid var(--line)}.preview{margin-top:32px;background:var(--soft);border-radius:12px;padding:24px;min-height:300px;display:grid;place-items:center}.preview img,.preview video{max-width:100%;max-height:70dvh;object-fit:contain}.preview iframe{border:0;width:100%;height:70dvh;background:white}.file-title{overflow-wrap:anywhere}.shared-content{width:min(100%,1000px)}.shared-files{list-style:none;padding:0}.shared-files a{display:flex;gap:12px;padding:16px 0}.grid-view thead{display:none}.grid-view tbody{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px}.grid-view tr:not(.empty-row){display:grid;grid-template-columns:32px 1fr 36px;border:1px solid var(--line);border-radius:12px;position:relative;padding:12px}.grid-view td{border:0;padding:4px}.grid-view .file-name{grid-column:1/4;grid-row:2;display:flex;flex-direction:column;min-width:0;max-width:100%;padding:20px 8px;gap:16px}.grid-view .file-icon{width:48px;height:48px}.grid-view .file-icon>.icon{width:40px;height:40px}.grid-view td:nth-child(3),.grid-view td:nth-child(5),.grid-view td:nth-child(6){display:none}.grid-view td:nth-child(4){grid-column:1/4;grid-row:3;text-align:center;color:var(--muted);font-size:12px}.grid-view td:last-child{grid-column:3;grid-row:1}.grid-view .empty-row{grid-column:1/-1}.grid-view .file-name a{max-width:100%}.grid-view .star-marker{position:absolute;top:24px;left:48px}
@media(hover:hover) and (pointer:fine){button:hover,.button:hover{background:var(--selected);border-color:var(--dn-nova-pale)}.primary:hover{background:#5d36aa!important}.sidebar nav a:hover{background:var(--selected)}.service-card:hover{border-color:var(--dn-nova-primary);background:var(--soft)}.file-table tr:hover:not(.empty-row){background:var(--soft)}a:hover{text-decoration:underline}}
@media(max-width:1200px){.app-shell{grid-template-columns:224px minmax(0,1fr)}.content{padding:32px 24px}.topbar{padding:0 24px}.brand{font-size:16px;gap:4px}.brand img{width:56px;height:56px}.file-type{display:none}.file-controls{flex-wrap:wrap}.profile-layout{gap:32px}.toolbar{flex-wrap:wrap}}
@media(max-width:767px){.app-shell{display:block}.sidebar{display:none;position:fixed;left:0;top:72px;width:260px;height:calc(100dvh - 72px);z-index:10}.nav-open .sidebar{display:flex}.mobile-menu{display:inline-flex}.topbar{height:72px;padding:0 16px}.workspace-label{display:none}.top-actions{gap:8px;margin-left:auto}.profile-link>span:not(.avatar){max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.content{padding:28px 16px}.page-heading{align-items:flex-start;flex-direction:column;gap:20px;margin-bottom:24px}h1{font-size:28px}.file-controls{gap:12px}.file-controls .search{flex-basis:100%}.search{max-width:none}.profile-layout{grid-template-columns:1fr;gap:40px}.profile-summary{border:0;padding:0}.stats{grid-template-columns:1fr;gap:20px}.stats>div{display:flex;justify-content:space-between;align-items:center}.stats strong{font-size:24px}.stats span{margin:0}.service-grid{grid-template-columns:1fr}.service-card{padding:24px}.public-content{padding:24px}.login-logo{width:112px;height:112px}.login>.muted{margin-bottom:32px}.toolbar>button{font-size:12px}.file-name{min-width:200px}.empty{padding:56px 16px}.file-owner,.file-type{display:none}.profile-link{font-size:12px}dialog{padding:24px}.selection{gap:8px}.preview{padding:12px}.form-actions{flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition-duration:0ms!important;animation:none!important}}

.file-controls .search{min-width:0;width:100%;max-width:100%}.search input{width:0;min-width:0;flex:1 1 0}

.table-scroll{position:relative}
.file-menu summary{width:44px;height:44px}
.archive-panel{padding:20px;background:var(--soft);border:1px solid var(--line);border-radius:12px;margin-block:24px}
.archive-panel h2{font-size:16px}.archive-panel p{font-size:14px;overflow-wrap:anywhere}
.version-item{padding-block:16px;border-bottom:1px solid var(--line)}.version-item p{margin-bottom:12px;font-variant-numeric:tabular-nums}.version-item .toolbar{flex-wrap:wrap}
@media(max-width:767px){
  .file-table:not(.grid-view) thead{display:none}
  .file-table:not(.grid-view) tbody{display:block}
  .file-table:not(.grid-view) tr:not(.empty-row){display:grid;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;padding-block:12px;border-bottom:1px solid var(--line)}
  .file-table:not(.grid-view) td{border:0;padding:4px}
  .file-table:not(.grid-view) td:first-child{grid-row:1/3;grid-column:1;align-self:stretch;display:flex;align-items:center;justify-content:center}
  .file-table:not(.grid-view) .file-name{grid-row:1;grid-column:2;min-width:0;max-width:100%;gap:8px}
  .file-table:not(.grid-view) .file-name>a,.file-table:not(.grid-view) .file-name>span:not(.file-icon):not(.star-marker){white-space:normal;overflow-wrap:anywhere}
  .file-table:not(.grid-view) .file-size{grid-row:2;grid-column:2;color:var(--muted);font-size:12px;padding-inline-start:48px}
  .file-table:not(.grid-view) .file-date{display:none}
  .file-table:not(.grid-view) td:last-child{grid-row:1/3;grid-column:3}
  .file-table:not(.grid-view) .file-owner,.file-table:not(.grid-view) .file-type{display:none}
  .upload-panel{bottom:16px;right:16px;width:calc(100vw - 32px);max-height:50dvh;overflow:auto}
  .selection>button{font-size:14px}
}

.file-menu-overlay{position:fixed;z-index:25;width:min(230px,calc(100vw - 16px));max-height:calc(100dvh - 16px);overflow-y:auto;background:var(--bg);color:var(--text);border:1px solid var(--line);border-radius:12px;padding:8px}.file-menu-overlay button,.file-menu-overlay a{display:block;text-align:left;width:100%;border:0;padding:10px 12px;font-size:14px;border-radius:8px;font-weight:400;min-height:44px}.share-people{max-height:240px;overflow:auto;margin-block:12px}.share-person{display:flex!important;align-items:center;gap:12px;margin:0!important;padding:8px;overflow-wrap:anywhere}.share-person .avatar{width:32px;height:32px;flex:none;object-fit:cover}.share-item span{overflow-wrap:anywhere;min-width:0}.share-item button{flex:none}
.mfa-qr{display:block;width:min(300px,100%);height:auto;background:#fff;border-radius:12px;margin-block:20px;image-rendering:pixelated}

/* Keep table cells in the same row; flex belongs inside the name cell. */
.file-table .file-name{display:table-cell;vertical-align:middle}
.file-name-content{display:flex;align-items:center;gap:12px;min-width:0;max-width:560px}
.file-name-content>a,.file-name-content>span:not(.file-icon):not(.star-marker){min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.grid-view .file-name{display:block}
.grid-view .file-name-content{flex-direction:column;gap:16px;max-width:100%}
.grid-view .file-name-content>a{max-width:100%}
@media(max-width:767px){.file-table:not(.grid-view) .file-name{display:block}.file-table:not(.grid-view) .file-name-content{gap:8px}.file-table:not(.grid-view) .file-name-content>a{white-space:normal;overflow-wrap:anywhere}}

/* Profile image editor, isolated from Cloud and messaging layouts. */
.avatar-editor-summary{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.avatar-editor-summary img{width:80px;height:80px;object-fit:cover;border-radius:50%}.avatar-editor-summary p{font-size:14px;color:var(--muted)}
dialog.avatar-editor{width:min(440px,calc(100vw - 24px));padding:0;border:1px solid var(--line);border-radius:22px;background:var(--panel,var(--bg));color:var(--text);max-height:calc(100dvh - 24px);overflow:hidden}dialog.avatar-editor::backdrop{background:#0009}dialog.avatar-editor form{padding:18px;display:flex;flex-direction:column;gap:12px;max-height:calc(100dvh - 24px);overflow:auto}dialog.avatar-editor header,dialog.avatar-editor footer{display:flex;align-items:center;justify-content:space-between;gap:12px}dialog.avatar-editor h2{margin:0;font-size:20px}dialog.avatar-editor p{font-size:14px;margin:0;color:var(--muted)}dialog.avatar-editor canvas{display:block;width:min(100%,300px);height:auto;aspect-ratio:1;margin:auto;border-radius:50%;touch-action:none;cursor:grab;border:2px solid var(--accent)}dialog.avatar-editor input[type=range]{display:block;width:100%;accent-color:var(--accent);min-height:40px}.avatar-editor-tools{display:flex;justify-content:space-between;gap:12px}dialog.avatar-editor button{min-height:44px}dialog.avatar-editor [role=status]:empty{display:none}
