Files
vue-driven-cloud-storage/frontend/workspace.css

1840 lines
38 KiB
CSS

/*
* Wanwan Cloud workspace UI.
* This file is intentionally loaded after the legacy inline styles so the
* application has one explicit, reviewable visual layer.
*/
body.enterprise-netdisk,
body.enterprise-netdisk.light-theme,
body.enterprise-netdisk:not(.light-theme) {
--ww-blue: #2878ff;
--ww-blue-dark: #1763e6;
--ww-blue-soft: #eaf2ff;
--ww-ink: #14213d;
--ww-text: #31415f;
--ww-muted: #7a89a5;
--ww-line: #e4eaf3;
--ww-line-strong: #d6deeb;
--ww-canvas: #f4f7fb;
--ww-surface: #ffffff;
--ww-surface-soft: #f8fafd;
--ww-success: #13a56f;
--ww-danger: #e34b4b;
--ww-warning: #d88a16;
--bg-primary: var(--ww-canvas);
--bg-secondary: var(--ww-surface);
--bg-card: var(--ww-surface);
--bg-card-hover: var(--ww-surface-soft);
--glass-border: var(--ww-line);
--glass-border-hover: #aac7f6;
--text-primary: var(--ww-ink);
--text-secondary: var(--ww-text);
--text-muted: var(--ww-muted);
--accent-1: var(--ww-blue);
--accent-2: var(--ww-blue-dark);
--accent-3: #18a6a6;
color: var(--ww-ink);
background:
radial-gradient(circle at 82% 7%, rgba(40, 120, 255, 0.08), transparent 24rem),
linear-gradient(135deg, #f8faff 0%, var(--ww-canvas) 52%, #eef4fc 100%);
font-family: "HarmonyOS Sans SC", "MiSans", "Source Han Sans SC", "Microsoft YaHei", sans-serif;
font-size: 14px;
line-height: 1.55;
}
body.enterprise-netdisk #app {
min-height: 100vh;
}
body.enterprise-netdisk button,
body.enterprise-netdisk input,
body.enterprise-netdisk select,
body.enterprise-netdisk textarea {
font: inherit;
}
body.enterprise-netdisk button:focus-visible,
body.enterprise-netdisk input:focus-visible,
body.enterprise-netdisk select:focus-visible,
body.enterprise-netdisk textarea:focus-visible,
body.enterprise-netdisk [tabindex]:focus-visible {
outline: 3px solid rgba(40, 120, 255, 0.2);
outline-offset: 2px;
}
/* App navigation */
body.enterprise-netdisk .navbar {
position: fixed !important;
inset: 0 auto 0 0;
z-index: 80;
width: 236px;
min-height: 100vh;
padding: 24px 16px 18px;
display: flex;
flex-direction: column;
align-items: stretch;
justify-content: flex-start;
gap: 26px;
background: rgba(250, 252, 255, 0.96) !important;
border: 0 !important;
border-right: 1px solid var(--ww-line) !important;
box-shadow: 12px 0 40px rgba(37, 57, 92, 0.04);
backdrop-filter: blur(18px) !important;
}
body.enterprise-netdisk .navbar-brand {
display: flex;
align-items: center;
gap: 12px;
min-width: 0;
padding: 0 8px;
color: var(--ww-ink);
font-size: inherit;
letter-spacing: 0;
}
body.enterprise-netdisk .brand-mark {
width: 42px;
height: 42px;
flex: 0 0 42px;
display: grid;
place-items: center;
border-radius: 13px;
color: #fff;
background: linear-gradient(145deg, #3688ff 0%, #1763e6 100%);
box-shadow: 0 9px 22px rgba(40, 120, 255, 0.24);
}
body.enterprise-netdisk .brand-mark i {
font-size: 19px;
}
body.enterprise-netdisk .brand-copy {
min-width: 0;
display: flex;
flex-direction: column;
gap: 1px;
}
body.enterprise-netdisk .brand-copy strong {
color: var(--ww-ink);
font-size: 19px;
font-weight: 800;
line-height: 1.25;
letter-spacing: 0.02em;
}
body.enterprise-netdisk .brand-copy small {
color: #98a6bc;
font-size: 9px;
font-weight: 700;
letter-spacing: 0.12em;
text-transform: uppercase;
}
body.enterprise-netdisk .navbar-menu {
width: 100%;
min-height: 0;
flex: 1;
display: flex;
flex-direction: column;
flex-wrap: nowrap;
align-items: stretch;
justify-content: flex-start;
gap: 6px;
}
body.enterprise-netdisk .nav-section-label {
padding: 0 12px 6px;
color: #a3aec0;
font-size: 11px;
font-weight: 700;
letter-spacing: 0.12em;
}
body.enterprise-netdisk .nav-service-label {
margin-top: 18px;
}
body.enterprise-netdisk .nav-item,
body.enterprise-netdisk .navbar-download-btn {
width: 100%;
min-height: 46px;
padding: 0 14px;
display: flex;
align-items: center;
justify-content: flex-start;
gap: 12px;
border: 1px solid transparent;
border-radius: 12px;
color: #53637d;
background: transparent;
font-size: 14px;
font-weight: 650;
white-space: nowrap;
cursor: pointer;
transition: color 160ms ease, background 160ms ease, transform 160ms ease;
}
body.enterprise-netdisk .nav-item i,
body.enterprise-netdisk .navbar-download-btn i {
width: 18px;
color: #8090a9;
font-size: 16px;
text-align: center;
transition: color 160ms ease;
}
body.enterprise-netdisk .nav-item:hover,
body.enterprise-netdisk .navbar-download-btn:hover {
border-color: transparent;
color: var(--ww-blue);
background: #edf4ff;
transform: translateX(2px);
}
body.enterprise-netdisk .nav-item:hover i,
body.enterprise-netdisk .navbar-download-btn:hover i {
color: var(--ww-blue);
}
body.enterprise-netdisk .nav-item.active {
border-color: transparent;
color: var(--ww-blue);
background: linear-gradient(90deg, #e6f0ff 0%, #edf4ff 100%);
box-shadow: inset 3px 0 0 var(--ww-blue);
}
body.enterprise-netdisk .nav-item.active i {
color: var(--ww-blue);
}
body.enterprise-netdisk .navbar-account {
margin-top: auto;
padding-top: 14px;
display: grid;
gap: 9px;
border-top: 1px solid var(--ww-line);
}
body.enterprise-netdisk .user-info {
min-width: 0;
padding: 10px;
display: flex;
align-items: center;
gap: 10px;
border: 1px solid var(--ww-line);
border-radius: 13px;
color: var(--ww-ink);
background: #fff;
}
body.enterprise-netdisk .user-avatar {
width: 34px;
height: 34px;
flex: 0 0 34px;
display: grid;
place-items: center;
border-radius: 11px;
color: var(--ww-blue);
background: var(--ww-blue-soft);
}
body.enterprise-netdisk .user-copy {
min-width: 0;
display: flex;
flex-direction: column;
}
body.enterprise-netdisk .user-copy small {
color: var(--ww-muted);
font-size: 10px;
}
body.enterprise-netdisk .user-copy strong {
overflow: hidden;
color: var(--ww-ink);
font-size: 13px;
text-overflow: ellipsis;
white-space: nowrap;
}
body.enterprise-netdisk .navbar-logout-btn {
width: 100%;
min-height: 38px;
justify-content: center;
color: #bf3d3d;
border-color: #f2d1d1;
background: #fff8f8;
}
body.enterprise-netdisk .navbar-logout-btn:hover {
color: #fff;
border-color: var(--ww-danger);
background: var(--ww-danger);
}
/* Shared workspace primitives */
body.enterprise-netdisk .main-container {
width: auto;
max-width: none !important;
min-width: 0;
margin: 0 0 0 236px !important;
padding: 28px clamp(22px, 2.4vw, 42px) 34px;
animation: ww-page-enter 260ms ease-out both;
}
body.enterprise-netdisk .card {
padding: 26px;
border: 1px solid rgba(221, 228, 239, 0.95);
border-radius: 18px;
color: var(--ww-ink);
background: rgba(255, 255, 255, 0.97);
box-shadow: 0 15px 46px rgba(31, 49, 78, 0.07);
backdrop-filter: none;
}
body.enterprise-netdisk .btn {
min-height: 40px;
padding: 0 15px;
display: inline-flex;
align-items: center;
justify-content: center;
gap: 8px;
border-radius: 10px;
font-size: 13px;
font-weight: 650;
line-height: 1;
white-space: nowrap;
cursor: pointer;
transition: border-color 160ms ease, background 160ms ease, color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}
body.enterprise-netdisk .btn:not(:disabled):active {
transform: translateY(1px);
}
body.enterprise-netdisk .btn:disabled {
cursor: not-allowed;
opacity: 0.58;
}
body.enterprise-netdisk .btn-primary {
color: #fff;
border-color: var(--ww-blue);
background: var(--ww-blue);
box-shadow: 0 6px 16px rgba(40, 120, 255, 0.18);
}
body.enterprise-netdisk .btn-primary:hover {
color: #fff;
border-color: var(--ww-blue-dark);
background: var(--ww-blue-dark);
box-shadow: 0 8px 20px rgba(40, 120, 255, 0.23);
transform: translateY(-1px);
}
body.enterprise-netdisk .btn-secondary {
color: #42516b;
border-color: var(--ww-line-strong);
background: #fff;
}
body.enterprise-netdisk .btn-secondary:hover {
color: var(--ww-blue);
border-color: #a9c6f5;
background: #f7faff;
}
body.enterprise-netdisk .btn-danger {
color: #c34343;
border-color: #f1cccc;
background: #fff7f7;
}
body.enterprise-netdisk .btn-danger:hover {
color: #fff;
border-color: var(--ww-danger);
background: var(--ww-danger);
}
body.enterprise-netdisk .btn-quiet {
color: var(--ww-muted);
border-color: transparent;
background: transparent;
}
body.enterprise-netdisk .btn-quiet:hover {
color: var(--ww-blue);
background: var(--ww-blue-soft);
}
body.enterprise-netdisk .workspace-page-header {
display: flex;
align-items: center;
justify-content: space-between;
gap: 28px;
}
body.enterprise-netdisk .workspace-page-heading {
min-width: 0;
}
body.enterprise-netdisk .workspace-kicker {
display: inline-flex;
align-items: center;
gap: 7px;
color: var(--ww-blue);
font-size: 11px;
font-weight: 800;
letter-spacing: 0.12em;
}
body.enterprise-netdisk .workspace-page-heading h1 {
margin: 6px 0 3px;
color: var(--ww-ink);
font-size: clamp(24px, 2.1vw, 30px);
font-weight: 800;
line-height: 1.2;
letter-spacing: -0.02em;
}
body.enterprise-netdisk .workspace-page-heading p {
margin: 0;
color: var(--ww-muted);
font-size: 13px;
}
/* Files */
body.enterprise-netdisk .files-view-card,
body.enterprise-netdisk .shares-page-card {
min-height: calc(100vh - 62px);
padding: 0 !important;
overflow: hidden;
}
body.enterprise-netdisk .files-page-header,
body.enterprise-netdisk .shares-page-head {
padding: 27px 30px 24px;
border-bottom: 1px solid var(--ww-line);
background:
radial-gradient(circle at 92% 0%, rgba(40, 120, 255, 0.08), transparent 19rem),
#fff;
}
body.enterprise-netdisk .storage-meter-card {
width: min(390px, 40%);
min-width: 310px;
padding: 14px 16px;
border: 1px solid #dae5f5;
border-radius: 14px;
background: rgba(248, 251, 255, 0.92);
}
body.enterprise-netdisk .storage-meter-head,
body.enterprise-netdisk .storage-meter-foot {
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
}
body.enterprise-netdisk .storage-meter-head strong {
overflow: hidden;
color: #34445f;
font-size: 12px;
font-weight: 700;
text-overflow: ellipsis;
white-space: nowrap;
}
body.enterprise-netdisk .files-storage-badge {
min-width: 0;
padding: 4px 8px;
display: inline-flex;
align-items: center;
gap: 6px;
border: 0;
border-radius: 7px;
font-size: 11px;
font-weight: 750;
}
body.enterprise-netdisk .files-storage-badge.local {
color: #087657;
background: #e9f8f2;
}
body.enterprise-netdisk .files-storage-badge.oss {
color: #1763e6;
background: #eaf2ff;
}
body.enterprise-netdisk .storage-meter-track {
height: 6px;
margin: 11px 0 7px;
overflow: hidden;
border-radius: 999px;
background: #e3eaf4;
}
body.enterprise-netdisk .storage-meter-track span {
height: 100%;
display: block;
border-radius: inherit;
transition: width 260ms ease;
}
body.enterprise-netdisk .storage-meter-foot {
color: var(--ww-muted);
font-size: 10px;
font-weight: 600;
}
body.enterprise-netdisk .breadcrumb-bar {
min-height: 42px;
margin: 16px 28px 0;
padding: 6px 10px;
display: flex;
align-items: center;
gap: 7px;
border: 1px solid var(--ww-line);
border-radius: 10px;
color: var(--ww-muted);
background: var(--ww-surface-soft);
}
body.enterprise-netdisk .breadcrumb-bar .breadcrumb-up {
min-height: 30px;
margin-left: auto;
padding: 0 10px;
font-size: 11px;
}
body.enterprise-netdisk .breadcrumb-home {
min-width: 30px;
min-height: 30px;
padding: 0;
display: grid;
place-items: center;
border-radius: 8px;
}
body.enterprise-netdisk .breadcrumb-link {
color: #59708f;
}
body.enterprise-netdisk .breadcrumb-link:hover {
color: var(--ww-blue);
}
body.enterprise-netdisk .breadcrumb-current {
color: var(--ww-ink);
font-weight: 700;
}
body.enterprise-netdisk .files-content-shell {
min-width: 0;
padding: 20px 28px 28px;
border: 0;
border-radius: 0;
background: transparent;
}
body.enterprise-netdisk .files-command-bar {
display: flex;
align-items: center;
justify-content: space-between;
gap: 16px;
}
body.enterprise-netdisk .files-command-primary,
body.enterprise-netdisk .view-toggle-group,
body.enterprise-netdisk .shares-page-actions {
display: flex;
align-items: center;
gap: 8px;
}
body.enterprise-netdisk .files-command-primary .btn {
min-width: 112px;
}
body.enterprise-netdisk .files-view-toggle,
body.enterprise-netdisk .shares-view-toggle {
padding: 3px;
border: 1px solid var(--ww-line);
border-radius: 11px;
background: var(--ww-surface-soft);
}
body.enterprise-netdisk .files-view-toggle .btn,
body.enterprise-netdisk .shares-view-toggle .btn {
min-width: 84px;
min-height: 34px;
padding: 0 11px;
border: 0;
border-radius: 8px;
box-shadow: none;
}
body.enterprise-netdisk .files-search-wrap {
position: relative;
z-index: 8;
margin-top: 14px;
}
body.enterprise-netdisk .files-search-row,
body.enterprise-netdisk .share-toolbar {
padding: 10px;
display: flex;
align-items: center;
gap: 9px;
border: 1px solid var(--ww-line);
border-radius: 13px;
background: var(--ww-surface-soft);
}
body.enterprise-netdisk .files-search-field,
body.enterprise-netdisk .share-search-field {
min-width: 220px;
min-height: 40px;
flex: 1;
display: flex;
align-items: center;
gap: 10px;
padding: 0 13px;
border: 1px solid var(--ww-line-strong);
border-radius: 10px;
background: #fff;
transition: border-color 160ms ease, box-shadow 160ms ease;
}
body.enterprise-netdisk .files-search-field:focus-within,
body.enterprise-netdisk .share-search-field:focus-within {
border-color: #8eb9fb;
box-shadow: 0 0 0 3px rgba(40, 120, 255, 0.1);
}
body.enterprise-netdisk .files-search-field > i,
body.enterprise-netdisk .share-search-field > i {
color: #8b9ab0;
}
body.enterprise-netdisk .files-search-field .form-input,
body.enterprise-netdisk .share-search-field input {
width: 100%;
min-width: 0;
min-height: 36px;
padding: 0;
border: 0;
outline: 0;
color: var(--ww-ink);
background: transparent;
box-shadow: none;
}
body.enterprise-netdisk .files-search-field .form-input:focus,
body.enterprise-netdisk .share-search-field input:focus {
border: 0;
outline: 0;
background: transparent;
box-shadow: none;
}
body.enterprise-netdisk .files-search-field input::placeholder,
body.enterprise-netdisk .share-search-field input::placeholder {
color: #9ba8ba;
}
body.enterprise-netdisk .files-search-type {
width: 122px;
min-height: 40px;
padding: 0 12px;
}
body.enterprise-netdisk .files-search-button {
min-width: 84px;
}
body.enterprise-netdisk .files-search-clear {
min-width: 62px;
}
body.enterprise-netdisk .files-search-results {
position: absolute;
inset: calc(100% + 8px) 0 auto;
z-index: 30;
max-height: 330px;
overflow: auto;
border: 1px solid var(--ww-line);
border-radius: 13px;
background: #fff;
box-shadow: 0 18px 42px rgba(26, 44, 73, 0.16);
}
body.enterprise-netdisk .files-search-message,
body.enterprise-netdisk .files-search-truncated {
padding: 14px 16px;
color: var(--ww-muted);
font-size: 12px;
}
body.enterprise-netdisk .files-search-message.error {
color: var(--ww-danger);
}
body.enterprise-netdisk .files-search-truncated {
color: var(--ww-warning);
background: #fffaf0;
}
body.enterprise-netdisk .files-search-result {
width: 100%;
padding: 12px 15px;
display: block;
border: 0;
border-bottom: 1px solid var(--ww-line);
color: inherit;
text-align: left;
background: transparent;
cursor: pointer;
}
body.enterprise-netdisk .files-search-result:hover {
background: #f4f8ff;
}
body.enterprise-netdisk .files-search-result-main {
display: flex;
align-items: center;
justify-content: space-between;
gap: 16px;
}
body.enterprise-netdisk .files-search-result-copy {
min-width: 0;
}
body.enterprise-netdisk .files-search-result-name,
body.enterprise-netdisk .files-search-result-path {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
body.enterprise-netdisk .files-search-result-name {
color: var(--ww-ink);
font-size: 13px;
font-weight: 700;
}
body.enterprise-netdisk .files-search-result-name i {
margin-right: 7px;
color: var(--ww-blue);
}
body.enterprise-netdisk .files-search-result-path,
body.enterprise-netdisk .files-search-result-size {
color: var(--ww-muted);
font-size: 11px;
}
body.enterprise-netdisk .files-search-result-size {
white-space: nowrap;
}
body.enterprise-netdisk .files-list-heading {
min-height: 47px;
padding: 0 4px;
display: flex;
align-items: center;
justify-content: space-between;
gap: 16px;
}
body.enterprise-netdisk .files-list-heading > div {
display: flex;
align-items: baseline;
gap: 10px;
}
body.enterprise-netdisk .files-list-heading strong {
color: var(--ww-ink);
font-size: 14px;
font-weight: 750;
}
body.enterprise-netdisk .files-list-heading span {
color: var(--ww-muted);
font-size: 11px;
}
body.enterprise-netdisk .files-list-hint i {
margin-right: 5px;
}
body.enterprise-netdisk .files-container {
position: relative;
min-height: calc(100vh - 384px);
padding: 8px;
overflow: hidden;
border: 1px solid var(--ww-line);
border-radius: 14px;
background: #fff;
}
body.enterprise-netdisk .files-content-shell .file-grid {
padding: 8px;
display: grid;
grid-template-columns: repeat(auto-fill, minmax(148px, 1fr));
gap: 10px;
}
body.enterprise-netdisk .files-content-shell .file-grid-item {
min-width: 0;
min-height: 154px;
padding: 16px 10px 12px;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
border: 1px solid transparent;
border-radius: 12px;
background: transparent;
box-shadow: none;
transition: border-color 160ms ease, background 160ms ease, transform 160ms ease, box-shadow 160ms ease;
}
body.enterprise-netdisk .files-content-shell .file-grid-item:hover {
border-color: #c8daf7;
background: #f6f9ff;
box-shadow: 0 8px 24px rgba(38, 69, 117, 0.07);
transform: translateY(-2px);
}
body.enterprise-netdisk .file-icon {
min-height: 72px;
margin-bottom: 8px;
display: grid;
place-items: center;
}
body.enterprise-netdisk .file-grid-type-icon {
font-size: 55px;
filter: drop-shadow(0 5px 8px rgba(49, 70, 103, 0.08));
}
body.enterprise-netdisk .file-grid-video-icon {
width: 66px;
height: 66px;
border: 0;
border-radius: 15px;
color: var(--ww-blue);
background: var(--ww-blue-soft);
}
body.enterprise-netdisk .file-thumbnail {
width: 76px;
height: 68px;
object-fit: cover;
border: 1px solid var(--ww-line);
border-radius: 10px;
}
body.enterprise-netdisk .files-content-shell .file-name {
width: 100%;
min-height: 20px;
overflow: hidden;
color: var(--ww-ink);
font-size: 13px;
font-weight: 700;
line-height: 1.45;
text-align: center;
text-overflow: ellipsis;
white-space: nowrap;
}
body.enterprise-netdisk .files-content-shell .file-size {
margin-top: 5px;
color: var(--ww-muted);
font-size: 11px;
text-align: center;
}
body.enterprise-netdisk .files-content-shell .file-list {
width: 100%;
overflow: auto;
border-radius: 10px;
}
body.enterprise-netdisk .files-content-shell .file-list-table {
width: 100%;
border: 0;
border-collapse: collapse;
border-radius: 0;
background: #fff;
}
body.enterprise-netdisk .file-list-table thead tr {
background: #f8fafd !important;
}
body.enterprise-netdisk .file-list-table th {
height: 42px;
padding: 0 14px !important;
color: #8190a6;
border-bottom: 1px solid var(--ww-line);
font-size: 11px;
font-weight: 700;
}
body.enterprise-netdisk .file-list-table td {
height: 62px;
padding: 8px 14px !important;
border-bottom: 1px solid #edf1f6;
font-size: 12px;
}
body.enterprise-netdisk .file-list-row:last-child td {
border-bottom: 0;
}
body.enterprise-netdisk .file-list-row:hover {
background: #f5f8fe;
}
body.enterprise-netdisk .file-list-name-text {
color: var(--ww-ink);
font-size: 13px;
font-weight: 650;
}
body.enterprise-netdisk .file-list-name-meta {
color: var(--ww-muted);
}
body.enterprise-netdisk .file-row-mobile-more {
width: 34px;
min-width: 34px;
min-height: 34px;
padding: 0;
border: 0;
color: var(--ww-muted);
background: transparent;
}
body.enterprise-netdisk .file-row-mobile-more:hover {
color: var(--ww-blue);
background: var(--ww-blue-soft);
}
body.enterprise-netdisk .files-empty-state {
min-height: calc(100vh - 410px);
padding: 36px 18px;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
body.enterprise-netdisk .files-empty-state > i {
width: 78px;
height: 78px;
margin: 0 0 16px;
display: grid;
place-items: center;
border-radius: 24px;
color: var(--ww-blue);
background: var(--ww-blue-soft);
font-size: 34px;
}
body.enterprise-netdisk .files-empty-title {
color: var(--ww-ink);
font-size: 16px;
font-weight: 750;
}
body.enterprise-netdisk .files-empty-desc {
margin-top: 5px;
color: var(--ww-muted);
font-size: 12px;
}
body.enterprise-netdisk .files-empty-actions {
margin-top: 18px;
}
/* Shares */
body.enterprise-netdisk .shares-page-actions {
flex: 0 0 auto;
}
body.enterprise-netdisk .share-metrics {
padding: 20px 30px 0;
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 12px;
}
body.enterprise-netdisk .share-metric {
min-width: 0;
padding: 14px 16px;
display: flex;
align-items: center;
gap: 12px;
border: 1px solid var(--ww-line);
border-radius: 13px;
background: var(--ww-surface-soft);
}
body.enterprise-netdisk .share-metric-icon {
width: 38px;
height: 38px;
flex: 0 0 38px;
display: grid;
place-items: center;
border-radius: 11px;
}
body.enterprise-netdisk .share-metric-icon.blue {
color: var(--ww-blue);
background: var(--ww-blue-soft);
}
body.enterprise-netdisk .share-metric-icon.teal {
color: #07837d;
background: #e7f8f6;
}
body.enterprise-netdisk .share-metric-icon.amber {
color: #b96d08;
background: #fff4df;
}
body.enterprise-netdisk .share-metric > span:last-child {
min-width: 0;
display: flex;
flex-direction: column;
}
body.enterprise-netdisk .share-metric small {
color: var(--ww-muted);
font-size: 10px;
font-weight: 650;
}
body.enterprise-netdisk .share-metric strong {
color: var(--ww-ink);
font-size: 20px;
font-weight: 800;
line-height: 1.25;
}
body.enterprise-netdisk .share-toolbar {
margin: 14px 30px 20px;
}
body.enterprise-netdisk .share-toolbar input,
body.enterprise-netdisk .share-toolbar select {
min-height: 40px;
padding: 0 12px;
border: 1px solid var(--ww-line-strong);
border-radius: 10px;
color: var(--ww-ink);
background: #fff;
}
body.enterprise-netdisk .share-toolbar select {
width: 138px;
flex: 0 0 138px;
}
body.enterprise-netdisk .share-section {
margin: 0 30px 20px;
overflow: hidden;
border: 1px solid var(--ww-line);
border-radius: 14px;
background: #fff;
}
body.enterprise-netdisk .share-section-head {
min-height: 66px;
padding: 12px 16px;
display: flex;
align-items: center;
justify-content: space-between;
gap: 16px;
border-bottom: 1px solid var(--ww-line);
background: #fafcff;
}
body.enterprise-netdisk .share-section-head > div {
min-width: 0;
display: flex;
align-items: center;
gap: 11px;
}
body.enterprise-netdisk .share-section-head > div > span:last-child {
min-width: 0;
display: flex;
flex-direction: column;
}
body.enterprise-netdisk .share-section-head strong {
color: var(--ww-ink);
font-size: 14px;
font-weight: 750;
}
body.enterprise-netdisk .share-section-head small {
overflow: hidden;
color: var(--ww-muted);
font-size: 10px;
text-overflow: ellipsis;
white-space: nowrap;
}
body.enterprise-netdisk .share-section-icon {
width: 36px;
height: 36px;
flex: 0 0 36px;
display: grid;
place-items: center;
border-radius: 10px;
color: var(--ww-blue);
background: var(--ww-blue-soft);
}
body.enterprise-netdisk .share-section-icon.teal {
color: #07837d;
background: #e7f8f6;
}
body.enterprise-netdisk .share-section-count {
flex: 0 0 auto;
padding: 4px 9px;
border-radius: 999px;
color: #66758c;
background: #edf2f8;
font-size: 10px;
font-weight: 700;
}
body.enterprise-netdisk .share-empty-state {
min-height: 224px;
padding: 34px 20px;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
text-align: center;
background: linear-gradient(180deg, #fff 0%, #fbfdff 100%);
}
body.enterprise-netdisk .share-empty-state.compact {
min-height: 175px;
padding: 26px 18px;
}
body.enterprise-netdisk .share-empty-icon {
width: 62px;
height: 62px;
margin-bottom: 13px;
display: grid;
place-items: center;
border-radius: 19px;
color: var(--ww-blue);
background: var(--ww-blue-soft);
font-size: 24px;
}
body.enterprise-netdisk .share-empty-icon.teal {
color: #07837d;
background: #e7f8f6;
}
body.enterprise-netdisk .share-empty-state strong {
color: var(--ww-ink);
font-size: 15px;
font-weight: 750;
}
body.enterprise-netdisk .share-empty-state p {
max-width: 410px;
margin: 5px 0 16px;
color: var(--ww-muted);
font-size: 11px;
}
body.enterprise-netdisk .share-loading-state {
min-height: 160px;
display: flex;
align-items: center;
justify-content: center;
gap: 8px;
color: var(--ww-muted);
}
body.enterprise-netdisk .share-card-grid {
padding: 16px;
display: grid;
grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
gap: 12px;
}
body.enterprise-netdisk .share-card {
min-width: 0;
padding: 16px;
border: 1px solid var(--ww-line);
border-radius: 13px;
background: #fff;
box-shadow: none;
transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}
body.enterprise-netdisk .share-card:hover {
border-color: #bdd3f5;
background: #fff;
box-shadow: 0 10px 26px rgba(38, 69, 117, 0.08);
transform: translateY(-2px);
}
body.enterprise-netdisk .share-card__title {
min-width: 0;
display: flex;
align-items: center;
gap: 10px;
color: var(--ww-ink);
font-size: 14px;
font-weight: 750;
}
body.enterprise-netdisk .share-card__title > span:last-child {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
body.enterprise-netdisk .share-card__type {
width: 34px;
height: 34px;
flex: 0 0 34px;
display: grid;
place-items: center;
border-radius: 10px;
color: var(--ww-blue);
background: var(--ww-blue-soft);
}
body.enterprise-netdisk .share-card__chips {
margin: 13px 0 11px;
display: flex;
flex-wrap: wrap;
gap: 6px;
}
body.enterprise-netdisk .share-chip {
padding: 3px 7px;
border: 0;
border-radius: 6px;
color: #65748a;
background: #eff3f8;
font-size: 9px;
font-weight: 650;
}
body.enterprise-netdisk .share-card__url {
min-width: 0;
min-height: 38px;
padding: 8px 9px;
display: flex;
align-items: center;
gap: 7px;
border-radius: 8px;
color: #708099;
background: #f5f7fa;
font-size: 10px;
}
body.enterprise-netdisk .share-card__url > i {
color: var(--ww-blue);
}
body.enterprise-netdisk .share-card__url-link {
min-width: 0;
flex: 1;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
body.enterprise-netdisk .share-code {
flex: 0 0 auto;
padding: 2px 6px;
border-radius: 5px;
color: #4f6078;
background: #fff;
font-family: Consolas, monospace;
}
body.enterprise-netdisk .share-card__meta {
margin: 12px 0;
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 7px 10px;
color: var(--ww-muted);
font-size: 10px;
}
body.enterprise-netdisk .share-card__meta span {
min-width: 0;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
body.enterprise-netdisk .share-card__meta i {
width: 13px;
color: #9caabd;
}
body.enterprise-netdisk .share-card__actions {
padding-top: 12px;
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 7px;
border-top: 1px solid #edf1f6;
}
body.enterprise-netdisk .share-card__actions .btn {
min-width: 0;
min-height: 34px;
padding: 0 8px;
font-size: 10px;
}
body.enterprise-netdisk .share-table-wrap {
width: 100%;
overflow-x: auto;
}
body.enterprise-netdisk .share-list-table {
width: 100%;
min-width: 780px;
border: 0;
border-collapse: collapse;
border-radius: 0;
table-layout: fixed;
background: #fff;
}
body.enterprise-netdisk .share-list-table thead tr {
background: #f8fafd !important;
}
body.enterprise-netdisk .share-list-table th {
height: 42px;
padding: 0 13px !important;
color: #8190a6;
border-bottom: 1px solid var(--ww-line);
font-size: 10px;
font-weight: 700;
text-align: left;
}
body.enterprise-netdisk .share-list-table td {
height: 58px;
padding: 8px 13px !important;
overflow: hidden;
color: #4a5971;
border-bottom: 1px solid #edf1f6;
font-size: 11px;
text-overflow: ellipsis;
white-space: nowrap;
}
body.enterprise-netdisk .share-list-table tbody tr:last-child td {
border-bottom: 0;
}
body.enterprise-netdisk .share-list-table tbody tr:hover {
background: #f7faff;
}
body.enterprise-netdisk .share-col-name {
width: 18%;
}
body.enterprise-netdisk .share-col-link {
width: 29%;
}
body.enterprise-netdisk .share-col-number {
width: 8%;
text-align: center !important;
}
body.enterprise-netdisk .share-col-expire {
width: 17%;
text-align: center !important;
}
body.enterprise-netdisk .share-col-actions {
width: 20%;
text-align: center !important;
}
body.enterprise-netdisk .share-list-resource {
min-width: 0;
display: flex;
align-items: center;
gap: 8px;
overflow: hidden;
color: var(--ww-ink);
font-weight: 650;
text-overflow: ellipsis;
white-space: nowrap;
}
body.enterprise-netdisk .share-list-resource i {
color: var(--ww-blue);
}
body.enterprise-netdisk .share-list-link-text {
display: block;
overflow: hidden;
color: #58708f;
text-overflow: ellipsis;
white-space: nowrap;
}
body.enterprise-netdisk .share-number-cell,
body.enterprise-netdisk .share-expire-cell {
text-align: center;
}
body.enterprise-netdisk .share-number-cell.muted {
color: var(--ww-muted);
}
body.enterprise-netdisk .share-forever {
color: var(--ww-success);
}
body.enterprise-netdisk .share-list-actions {
display: flex;
align-items: center;
justify-content: center;
gap: 6px;
}
body.enterprise-netdisk .share-list-actions .btn {
width: 32px;
min-width: 32px;
min-height: 32px;
padding: 0;
}
@keyframes ww-page-enter {
from {
opacity: 0;
transform: translateY(7px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
@media (max-width: 1200px) {
body.enterprise-netdisk .navbar {
width: 212px;
}
body.enterprise-netdisk .main-container {
margin-left: 212px !important;
padding-inline: 22px;
}
body.enterprise-netdisk .storage-meter-card {
width: 340px;
min-width: 280px;
}
body.enterprise-netdisk .share-card-grid {
grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
}
}
@media (max-width: 900px) {
body.enterprise-netdisk .navbar {
position: sticky !important;
inset: 0 auto auto;
width: 100%;
min-height: 66px;
padding: 9px 14px;
flex-direction: row;
align-items: center;
gap: 14px;
border-right: 0 !important;
border-bottom: 1px solid var(--ww-line) !important;
box-shadow: 0 6px 20px rgba(31, 49, 78, 0.06);
}
body.enterprise-netdisk .navbar-brand {
flex: 0 0 auto;
padding: 0;
}
body.enterprise-netdisk .brand-mark {
width: 38px;
height: 38px;
flex-basis: 38px;
border-radius: 11px;
}
body.enterprise-netdisk .brand-copy small,
body.enterprise-netdisk .nav-section-label {
display: none;
}
body.enterprise-netdisk .brand-copy strong {
font-size: 17px;
}
body.enterprise-netdisk .navbar-menu {
min-width: 0;
flex-direction: row;
align-items: center;
gap: 5px;
overflow-x: auto;
scrollbar-width: none;
}
body.enterprise-netdisk .navbar-menu::-webkit-scrollbar {
display: none;
}
body.enterprise-netdisk .nav-item,
body.enterprise-netdisk .navbar-download-btn {
width: auto;
min-height: 40px;
flex: 0 0 auto;
padding: 0 11px;
border-radius: 9px;
font-size: 12px;
}
body.enterprise-netdisk .nav-item.active {
box-shadow: none;
}
body.enterprise-netdisk .nav-item:hover,
body.enterprise-netdisk .navbar-download-btn:hover {
transform: none;
}
body.enterprise-netdisk .nav-service-label {
margin: 0;
}
body.enterprise-netdisk .navbar-account {
margin: 0 0 0 auto;
padding: 0 0 0 6px;
display: flex;
align-items: center;
gap: 6px;
border: 0;
}
body.enterprise-netdisk .user-info {
min-width: 40px;
min-height: 40px;
padding: 3px;
border: 0;
background: transparent;
}
body.enterprise-netdisk .user-copy {
display: none;
}
body.enterprise-netdisk .navbar-logout-btn {
width: 40px;
min-width: 40px;
min-height: 40px;
padding: 0;
font-size: 0;
}
body.enterprise-netdisk .navbar-logout-btn i {
font-size: 14px;
}
body.enterprise-netdisk .main-container {
margin-left: 0 !important;
padding: 20px;
}
body.enterprise-netdisk .files-view-card,
body.enterprise-netdisk .shares-page-card {
min-height: calc(100vh - 106px);
}
body.enterprise-netdisk .workspace-page-header {
align-items: flex-start;
}
body.enterprise-netdisk .storage-meter-card {
width: 310px;
min-width: 270px;
}
body.enterprise-netdisk .share-toolbar {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
}
body.enterprise-netdisk .share-search-field {
grid-column: 1 / -1;
}
body.enterprise-netdisk .share-toolbar select {
width: 100%;
min-width: 0;
}
}
@media (max-width: 680px) {
body.enterprise-netdisk .navbar {
gap: 8px;
padding-inline: 10px;
}
body.enterprise-netdisk .brand-copy {
display: none;
}
body.enterprise-netdisk .nav-item {
width: 40px;
min-width: 40px;
padding: 0;
justify-content: center;
font-size: 0;
}
body.enterprise-netdisk .nav-item i {
width: auto;
font-size: 15px;
}
body.enterprise-netdisk .navbar-download-btn,
body.enterprise-netdisk .user-info {
display: none;
}
body.enterprise-netdisk .main-container {
padding: 12px;
}
body.enterprise-netdisk .card {
border-radius: 14px;
}
body.enterprise-netdisk .files-page-header,
body.enterprise-netdisk .shares-page-head {
padding: 20px 18px;
flex-direction: column;
gap: 16px;
}
body.enterprise-netdisk .storage-meter-card {
width: 100%;
min-width: 0;
}
body.enterprise-netdisk .breadcrumb-bar {
margin: 12px 14px 0;
}
body.enterprise-netdisk .breadcrumb-up {
font-size: 0 !important;
}
body.enterprise-netdisk .breadcrumb-up i {
font-size: 12px;
}
body.enterprise-netdisk .files-content-shell {
padding: 14px;
}
body.enterprise-netdisk .files-command-bar {
align-items: stretch;
flex-direction: column;
gap: 10px;
}
body.enterprise-netdisk .files-command-primary {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
}
body.enterprise-netdisk .files-command-primary .btn {
min-width: 0;
}
body.enterprise-netdisk .files-view-toggle {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
}
body.enterprise-netdisk .files-view-toggle .btn {
min-width: 0;
}
body.enterprise-netdisk .files-search-row {
display: grid;
grid-template-columns: minmax(0, 1fr) 92px;
}
body.enterprise-netdisk .files-search-field {
min-width: 0;
grid-column: 1 / -1;
}
body.enterprise-netdisk .files-search-type {
width: 100%;
}
body.enterprise-netdisk .files-search-clear {
display: none;
}
body.enterprise-netdisk .files-list-hint {
display: none;
}
body.enterprise-netdisk .files-container {
min-height: calc(100vh - 520px);
}
body.enterprise-netdisk .files-content-shell .file-grid {
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 6px;
}
body.enterprise-netdisk .files-content-shell .file-grid-item {
min-height: 140px;
}
body.enterprise-netdisk .file-col-size,
body.enterprise-netdisk .file-col-time,
body.enterprise-netdisk .file-list-size-cell,
body.enterprise-netdisk .file-list-time-cell {
display: none;
}
body.enterprise-netdisk .file-col-name {
width: auto;
}
body.enterprise-netdisk .file-col-actions {
width: 52px;
}
body.enterprise-netdisk .file-list-name-meta {
display: block;
}
body.enterprise-netdisk .shares-page-actions {
width: 100%;
}
body.enterprise-netdisk .shares-view-toggle {
flex: 1;
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
}
body.enterprise-netdisk .shares-view-toggle .btn {
min-width: 0;
}
body.enterprise-netdisk .share-metrics {
padding: 14px 14px 0;
grid-template-columns: repeat(2, minmax(0, 1fr));
}
body.enterprise-netdisk .share-metric-wide {
grid-column: 1 / -1;
}
body.enterprise-netdisk .share-metric {
padding: 11px;
}
body.enterprise-netdisk .share-toolbar {
margin: 12px 14px 14px;
grid-template-columns: 1fr;
}
body.enterprise-netdisk .share-search-field,
body.enterprise-netdisk .share-toolbar select {
grid-column: auto;
}
body.enterprise-netdisk .share-section {
margin: 0 14px 14px;
}
body.enterprise-netdisk .share-section-head small {
display: none;
}
body.enterprise-netdisk .share-card-grid {
padding: 10px;
grid-template-columns: 1fr;
}
}
@media (max-width: 420px) {
body.enterprise-netdisk .share-metrics {
grid-template-columns: 1fr;
}
body.enterprise-netdisk .share-metric-wide {
grid-column: auto;
}
body.enterprise-netdisk .files-search-row {
grid-template-columns: 1fr;
}
body.enterprise-netdisk .files-search-button {
width: 100%;
}
body.enterprise-netdisk .share-card__meta {
grid-template-columns: 1fr;
}
}
@media (prefers-reduced-motion: reduce) {
body.enterprise-netdisk .main-container {
animation: none;
}
body.enterprise-netdisk *,
body.enterprise-netdisk *::before,
body.enterprise-netdisk *::after {
scroll-behavior: auto !important;
transition-duration: 0.01ms !important;
animation-duration: 0.01ms !important;
animation-iteration-count: 1 !important;
}
}