forked from jiaoly/financial_system
2791 lines
48 KiB
CSS
2791 lines
48 KiB
CSS
:root {
|
|
--surface: #f5f7fa;
|
|
--surface-soft: #eef2f7;
|
|
--surface-strong: #d9e1ec;
|
|
--card: #ffffff;
|
|
--primary: #22313f;
|
|
--primary-soft: #d3d7db;
|
|
--text: #1f2933;
|
|
--muted: #667381;
|
|
--line: #c7d0dc;
|
|
--line-soft: #f4f7fa;
|
|
--blue: #2563eb;
|
|
--blue-soft: #e8f1ff;
|
|
--green: #008c61;
|
|
--green-soft: #ddf8ee;
|
|
--red: #bd1e1e;
|
|
--red-soft: #ffebe8;
|
|
--shadow: 0 16px 32px rgba(4, 22, 39, 0.06);
|
|
--sidebar-bg: #ffffff;
|
|
--nav-text: #334155;
|
|
--nav-active-bg: #e8f0ff;
|
|
--topbar-bg: rgba(245, 247, 250, 0.94);
|
|
--search-bg: #f6f8fb;
|
|
--control-bg: #ffffff;
|
|
--secondary-bg: #eef2f7;
|
|
--secondary-hover-bg: #d9e1ec;
|
|
--secondary-hover-border: #acb8c7;
|
|
--table-header-bg: #f5f8fb;
|
|
--table-row-hover-bg: #f9fbff;
|
|
--modal-backdrop: rgba(34, 49, 63, 0.32);
|
|
--primary-rgb: 34, 49, 63;
|
|
--accent-rgb: 37, 99, 235;
|
|
--app-font-family:
|
|
Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI",
|
|
"PingFang SC", "Microsoft YaHei", sans-serif;
|
|
--radius-sm: 5px;
|
|
--radius-md: 7px;
|
|
--radius-lg: 10px;
|
|
--topbar-height: 64px;
|
|
--nav-height: 42px;
|
|
--control-height: 40px;
|
|
--base-font-size: 15px;
|
|
--page-padding: 24px;
|
|
--content-gap: 18px;
|
|
--panel-padding: 20px;
|
|
--table-cell-y: 12px;
|
|
--table-cell-x: 18px;
|
|
--layout-sidebar-width: 280px;
|
|
--layout-sidebar-offset: 280px;
|
|
--collapsed-sidebar-width: 88px;
|
|
--collapsed-sidebar-offset: 88px;
|
|
--content-max-width: none;
|
|
--motion-duration: 280ms;
|
|
--motion-duration-fast: 180ms;
|
|
--motion-easing: cubic-bezier(0.22, 1, 0.36, 1);
|
|
color: var(--text);
|
|
background: var(--surface);
|
|
font-family: var(--app-font-family);
|
|
}
|
|
|
|
* {
|
|
box-sizing: border-box;
|
|
}
|
|
|
|
html,
|
|
body,
|
|
#app {
|
|
min-height: 100%;
|
|
}
|
|
|
|
body {
|
|
margin: 0;
|
|
background: var(--surface);
|
|
color: var(--text);
|
|
font-size: var(--base-font-size);
|
|
-webkit-font-smoothing: antialiased;
|
|
}
|
|
|
|
button,
|
|
input,
|
|
select,
|
|
textarea {
|
|
font: inherit;
|
|
}
|
|
|
|
button {
|
|
cursor: pointer;
|
|
}
|
|
|
|
button:disabled {
|
|
cursor: not-allowed;
|
|
opacity: 0.62;
|
|
}
|
|
|
|
a {
|
|
color: inherit;
|
|
text-decoration: none;
|
|
}
|
|
|
|
.app-shell {
|
|
min-height: 100vh;
|
|
background: var(--surface);
|
|
}
|
|
|
|
.main-shell {
|
|
min-height: 100vh;
|
|
margin-left: var(--layout-sidebar-offset);
|
|
transition: margin-left var(--motion-duration) var(--motion-easing);
|
|
will-change: margin-left;
|
|
}
|
|
|
|
:root[data-sidebar="floating"] .app-shell {
|
|
--collapsed-sidebar-offset: calc(var(--collapsed-sidebar-width) + 24px);
|
|
}
|
|
|
|
.app-shell.is-sidebar-collapsed .main-shell {
|
|
margin-left: var(--collapsed-sidebar-offset);
|
|
}
|
|
|
|
.page-shell {
|
|
padding: var(--page-padding);
|
|
}
|
|
|
|
.page-shell > .view-stack {
|
|
max-width: var(--content-max-width);
|
|
margin-inline: auto;
|
|
}
|
|
|
|
.sidebar {
|
|
position: fixed;
|
|
inset: 0 auto 0 0;
|
|
z-index: 30;
|
|
display: flex;
|
|
width: var(--layout-sidebar-width);
|
|
flex-direction: column;
|
|
overflow: hidden;
|
|
border-right: 1px solid var(--line);
|
|
background: var(--sidebar-bg);
|
|
transition:
|
|
width var(--motion-duration) var(--motion-easing),
|
|
background var(--motion-duration-fast) ease,
|
|
border-color var(--motion-duration-fast) ease,
|
|
box-shadow var(--motion-duration-fast) ease,
|
|
transform var(--motion-duration) var(--motion-easing);
|
|
will-change: width, transform;
|
|
}
|
|
|
|
.app-shell.is-sidebar-collapsed .sidebar {
|
|
width: var(--collapsed-sidebar-width);
|
|
}
|
|
|
|
:root[data-sidebar="floating"] .sidebar {
|
|
inset: 16px auto 16px 16px;
|
|
border: 1px solid var(--line);
|
|
border-radius: var(--radius-lg);
|
|
box-shadow: var(--shadow);
|
|
}
|
|
|
|
:root[data-sidebar="edge"] .sidebar {
|
|
border-right: 0;
|
|
background: var(--primary);
|
|
}
|
|
|
|
:root[data-sidebar="edge"] .brand-title,
|
|
:root[data-sidebar="edge"] .brand-subtitle,
|
|
:root[data-sidebar="edge"] .nav-section-title,
|
|
:root[data-sidebar="edge"] .nav-link {
|
|
color: white;
|
|
}
|
|
|
|
:root[data-sidebar="edge"] .brand-mark {
|
|
background: rgba(255, 255, 255, 0.16);
|
|
}
|
|
|
|
:root[data-sidebar="edge"] .nav-link:hover,
|
|
:root[data-sidebar="edge"] .nav-link.is-active {
|
|
background: rgba(255, 255, 255, 0.16);
|
|
color: white;
|
|
}
|
|
|
|
:root[data-layout="fullscreen"] .main-shell {
|
|
margin-left: 0;
|
|
}
|
|
|
|
:root[data-layout="fullscreen"] .sidebar {
|
|
transform: translateX(-110%);
|
|
}
|
|
|
|
:root[data-layout="fullscreen"] .sidebar.is-open {
|
|
transform: translateX(0);
|
|
}
|
|
|
|
:root[data-layout="fullscreen"] .mobile-menu {
|
|
display: grid;
|
|
}
|
|
|
|
.brand {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 12px;
|
|
padding: calc(var(--panel-padding) + 8px) var(--panel-padding) var(--panel-padding);
|
|
transition:
|
|
gap var(--motion-duration) var(--motion-easing),
|
|
padding var(--motion-duration) var(--motion-easing);
|
|
}
|
|
|
|
.brand-main {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 12px;
|
|
min-width: 0;
|
|
}
|
|
|
|
.brand-copy {
|
|
min-width: 0;
|
|
max-width: 160px;
|
|
overflow: hidden;
|
|
opacity: 1;
|
|
transform: translateX(0);
|
|
white-space: nowrap;
|
|
transition:
|
|
max-width var(--motion-duration) var(--motion-easing),
|
|
opacity var(--motion-duration-fast) ease,
|
|
transform var(--motion-duration) var(--motion-easing);
|
|
}
|
|
|
|
.brand-mark {
|
|
display: grid;
|
|
width: 40px;
|
|
height: 40px;
|
|
place-items: center;
|
|
flex: 0 0 auto;
|
|
border-radius: var(--radius-md);
|
|
background: var(--primary);
|
|
color: white;
|
|
box-shadow: 0 8px 18px rgba(var(--primary-rgb), 0.2);
|
|
transition:
|
|
width var(--motion-duration) var(--motion-easing),
|
|
height var(--motion-duration) var(--motion-easing),
|
|
border-radius var(--motion-duration-fast) ease,
|
|
box-shadow var(--motion-duration-fast) ease;
|
|
}
|
|
|
|
.brand-mark.large {
|
|
width: 52px;
|
|
height: 52px;
|
|
}
|
|
|
|
.brand-title {
|
|
margin: 0;
|
|
color: var(--primary);
|
|
font-size: 18px;
|
|
font-weight: 800;
|
|
}
|
|
|
|
.brand-subtitle {
|
|
margin: 4px 0 0;
|
|
color: var(--muted);
|
|
font-size: 12px;
|
|
}
|
|
|
|
.sidebar-nav {
|
|
display: grid;
|
|
flex: 1;
|
|
align-content: start;
|
|
gap: 8px;
|
|
min-height: 0;
|
|
overflow-y: auto;
|
|
padding: 16px;
|
|
transition:
|
|
gap var(--motion-duration) var(--motion-easing),
|
|
padding var(--motion-duration) var(--motion-easing);
|
|
}
|
|
|
|
.sidebar-nav::-webkit-scrollbar {
|
|
width: 8px;
|
|
}
|
|
|
|
.sidebar-nav::-webkit-scrollbar-thumb {
|
|
border: 2px solid var(--sidebar-bg);
|
|
border-radius: 999px;
|
|
background: var(--surface-strong);
|
|
}
|
|
|
|
.app-shell.is-sidebar-collapsed .brand {
|
|
justify-content: center;
|
|
gap: 4px;
|
|
padding-inline: 8px;
|
|
}
|
|
|
|
.app-shell.is-sidebar-collapsed .brand-main {
|
|
justify-content: center;
|
|
}
|
|
|
|
.app-shell.is-sidebar-collapsed .brand-copy,
|
|
.app-shell.is-sidebar-collapsed .nav-link span,
|
|
.app-shell.is-sidebar-collapsed .nav-section-title {
|
|
max-width: 0;
|
|
opacity: 0;
|
|
pointer-events: none;
|
|
transform: translateX(-8px);
|
|
}
|
|
|
|
.app-shell.is-sidebar-collapsed .brand-mark {
|
|
width: 36px;
|
|
height: 36px;
|
|
}
|
|
|
|
.app-shell.is-sidebar-collapsed .sidebar-nav,
|
|
.app-shell.is-sidebar-collapsed .sidebar-footer {
|
|
padding-inline: 14px;
|
|
}
|
|
|
|
.app-shell.is-sidebar-collapsed .nav-link {
|
|
justify-content: center;
|
|
gap: 0;
|
|
padding-inline: 0;
|
|
}
|
|
|
|
.app-shell.is-sidebar-collapsed .nav-section-title {
|
|
margin: 0;
|
|
}
|
|
|
|
.nav-section {
|
|
display: grid;
|
|
gap: 5px;
|
|
}
|
|
|
|
.nav-section + .nav-section {
|
|
margin-top: 8px;
|
|
padding-top: 8px;
|
|
border-top: 1px solid var(--line-soft);
|
|
}
|
|
|
|
.nav-section-title {
|
|
max-width: 180px;
|
|
margin: 0 8px 2px;
|
|
overflow: hidden;
|
|
color: var(--muted);
|
|
font-size: 12px;
|
|
font-weight: 700;
|
|
line-height: 1.4;
|
|
opacity: 0.78;
|
|
transform: translateX(0);
|
|
white-space: nowrap;
|
|
transition:
|
|
max-width var(--motion-duration) var(--motion-easing),
|
|
margin var(--motion-duration) var(--motion-easing),
|
|
opacity var(--motion-duration-fast) ease,
|
|
transform var(--motion-duration) var(--motion-easing);
|
|
}
|
|
|
|
.nav-link {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 12px;
|
|
min-height: var(--nav-height);
|
|
width: 100%;
|
|
border: 0;
|
|
border-radius: var(--radius-md);
|
|
background: transparent;
|
|
color: var(--nav-text);
|
|
padding: 0 14px;
|
|
text-align: left;
|
|
transition:
|
|
background var(--motion-duration-fast) ease,
|
|
color var(--motion-duration-fast) ease,
|
|
gap var(--motion-duration) var(--motion-easing),
|
|
padding var(--motion-duration) var(--motion-easing),
|
|
transform var(--motion-duration-fast) ease;
|
|
}
|
|
|
|
.nav-link span {
|
|
max-width: 120px;
|
|
overflow: hidden;
|
|
opacity: 1;
|
|
transform: translateX(0);
|
|
white-space: nowrap;
|
|
transition:
|
|
max-width var(--motion-duration) var(--motion-easing),
|
|
opacity var(--motion-duration-fast) ease,
|
|
transform var(--motion-duration) var(--motion-easing);
|
|
}
|
|
|
|
.nav-link:hover,
|
|
.nav-link.is-active {
|
|
background: var(--nav-active-bg);
|
|
color: var(--blue);
|
|
}
|
|
|
|
.nav-link.is-active {
|
|
font-weight: 700;
|
|
}
|
|
|
|
.nav-button {
|
|
appearance: none;
|
|
}
|
|
|
|
.nav-link.danger {
|
|
color: var(--red);
|
|
}
|
|
|
|
.sidebar-footer {
|
|
display: grid;
|
|
flex: 0 0 auto;
|
|
gap: 6px;
|
|
border-top: 1px solid var(--line);
|
|
padding: 16px;
|
|
transition:
|
|
gap var(--motion-duration) var(--motion-easing),
|
|
padding var(--motion-duration) var(--motion-easing);
|
|
}
|
|
|
|
.topbar {
|
|
position: sticky;
|
|
top: 0;
|
|
z-index: 20;
|
|
display: flex;
|
|
min-height: var(--topbar-height);
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
gap: var(--content-gap);
|
|
border-bottom: 1px solid var(--line-soft);
|
|
background: var(--topbar-bg);
|
|
padding: 0 var(--page-padding);
|
|
backdrop-filter: blur(14px);
|
|
}
|
|
|
|
.topbar-left,
|
|
.topbar-actions {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 16px;
|
|
}
|
|
|
|
.global-search {
|
|
display: flex;
|
|
width: min(520px, 40vw);
|
|
min-width: 260px;
|
|
align-items: center;
|
|
gap: 10px;
|
|
border: 1px solid var(--line);
|
|
border-radius: 999px;
|
|
background: var(--search-bg);
|
|
padding: 0 16px;
|
|
color: var(--muted);
|
|
}
|
|
|
|
.global-search input {
|
|
min-height: var(--control-height);
|
|
width: 100%;
|
|
border: 0;
|
|
background: transparent;
|
|
color: var(--text);
|
|
outline: 0;
|
|
}
|
|
|
|
.icon-button {
|
|
position: relative;
|
|
display: grid;
|
|
width: 42px;
|
|
height: 42px;
|
|
place-items: center;
|
|
border: 0;
|
|
border-radius: 999px;
|
|
background: transparent;
|
|
color: var(--nav-text);
|
|
}
|
|
|
|
.icon-button:hover {
|
|
background: var(--surface-strong);
|
|
color: var(--blue);
|
|
}
|
|
|
|
.mobile-menu {
|
|
display: none;
|
|
}
|
|
|
|
.notice-dot {
|
|
position: absolute;
|
|
top: 9px;
|
|
right: 10px;
|
|
width: 8px;
|
|
height: 8px;
|
|
border: 2px solid var(--surface);
|
|
border-radius: 999px;
|
|
background: var(--red);
|
|
}
|
|
|
|
.user-summary {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 12px;
|
|
border-left: 1px solid var(--line);
|
|
padding-left: 20px;
|
|
}
|
|
|
|
.profile-trigger {
|
|
border-top: 0;
|
|
border-right: 0;
|
|
border-bottom: 0;
|
|
background: transparent;
|
|
color: inherit;
|
|
text-align: left;
|
|
}
|
|
|
|
.profile-trigger:hover .avatar {
|
|
border-color: var(--blue);
|
|
}
|
|
|
|
.user-text {
|
|
display: grid;
|
|
gap: 2px;
|
|
text-align: right;
|
|
}
|
|
|
|
.user-text strong {
|
|
color: var(--primary);
|
|
font-size: 14px;
|
|
}
|
|
|
|
.user-text span {
|
|
color: var(--muted);
|
|
font-size: 12px;
|
|
}
|
|
|
|
.avatar {
|
|
display: grid;
|
|
width: 42px;
|
|
height: 42px;
|
|
place-items: center;
|
|
border: 2px solid var(--line);
|
|
border-radius: 999px;
|
|
background: var(--card);
|
|
color: var(--primary);
|
|
font-size: 13px;
|
|
font-weight: 800;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.avatar img {
|
|
width: 100%;
|
|
height: 100%;
|
|
object-fit: cover;
|
|
}
|
|
|
|
.avatar.large {
|
|
width: 76px;
|
|
height: 76px;
|
|
font-size: 20px;
|
|
}
|
|
|
|
.appearance-panel-layer {
|
|
position: fixed;
|
|
inset: 0;
|
|
z-index: 90;
|
|
display: grid;
|
|
align-items: start;
|
|
justify-items: end;
|
|
pointer-events: auto;
|
|
}
|
|
|
|
.appearance-panel {
|
|
width: min(480px, calc(100vw - 20px));
|
|
max-height: 100vh;
|
|
margin: 0;
|
|
overflow-y: auto;
|
|
border: 1px solid var(--line);
|
|
border-radius: 0 0 0 var(--radius-lg);
|
|
background: var(--card);
|
|
box-shadow: 0 28px 70px rgba(var(--primary-rgb), 0.26);
|
|
color: var(--text);
|
|
padding: 14px;
|
|
transform: translateX(0);
|
|
transition:
|
|
opacity var(--motion-duration-fast) ease,
|
|
transform var(--motion-duration) var(--motion-easing);
|
|
will-change: transform, opacity;
|
|
}
|
|
|
|
.drawer-slide-enter-active,
|
|
.drawer-slide-leave-active {
|
|
transition: opacity var(--motion-duration) ease;
|
|
}
|
|
|
|
.drawer-slide-enter-from,
|
|
.drawer-slide-leave-to {
|
|
opacity: 0;
|
|
}
|
|
|
|
.drawer-slide-enter-from .appearance-panel,
|
|
.drawer-slide-leave-to .appearance-panel {
|
|
opacity: 0;
|
|
transform: translateX(28px);
|
|
}
|
|
|
|
.drawer-slide-enter-to .appearance-panel,
|
|
.drawer-slide-leave-from .appearance-panel {
|
|
opacity: 1;
|
|
transform: translateX(0);
|
|
}
|
|
|
|
.fade-enter-active,
|
|
.fade-leave-active {
|
|
transition: opacity var(--motion-duration-fast) ease;
|
|
}
|
|
|
|
.fade-enter-from,
|
|
.fade-leave-to {
|
|
opacity: 0;
|
|
}
|
|
|
|
:root[data-theme-mode="dark"] .appearance-panel {
|
|
box-shadow: 0 28px 70px rgba(0, 0, 0, 0.45);
|
|
}
|
|
|
|
.appearance-panel::-webkit-scrollbar {
|
|
width: 10px;
|
|
}
|
|
|
|
.appearance-panel::-webkit-scrollbar-thumb {
|
|
border: 3px solid var(--card);
|
|
border-radius: 999px;
|
|
background: var(--surface-strong);
|
|
}
|
|
|
|
.appearance-panel-header {
|
|
display: flex;
|
|
align-items: flex-start;
|
|
justify-content: space-between;
|
|
gap: 10px;
|
|
margin-bottom: 12px;
|
|
}
|
|
|
|
.appearance-header-actions {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 8px;
|
|
}
|
|
|
|
.appearance-recommend {
|
|
min-height: 30px;
|
|
padding-inline: 9px;
|
|
}
|
|
|
|
.appearance-panel-header .icon-button {
|
|
width: 32px;
|
|
height: 32px;
|
|
}
|
|
|
|
.appearance-panel-header .icon-button svg {
|
|
width: 18px;
|
|
height: 18px;
|
|
}
|
|
|
|
.appearance-panel-header h2,
|
|
.appearance-section-head h3 {
|
|
margin: 0;
|
|
color: var(--primary);
|
|
}
|
|
|
|
.appearance-panel-header h2 {
|
|
font-size: 17px;
|
|
}
|
|
|
|
.appearance-panel-header p {
|
|
margin: 4px 0 0;
|
|
color: var(--muted);
|
|
font-size: 13px;
|
|
}
|
|
|
|
.appearance-section {
|
|
display: grid;
|
|
gap: 8px;
|
|
}
|
|
|
|
.appearance-section + .appearance-section {
|
|
margin-top: 14px;
|
|
}
|
|
|
|
.appearance-section-head {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 8px;
|
|
}
|
|
|
|
.appearance-section-head h3 {
|
|
font-size: 14px;
|
|
}
|
|
|
|
.appearance-reset {
|
|
display: grid;
|
|
width: 22px;
|
|
height: 22px;
|
|
place-items: center;
|
|
border: 1px solid transparent;
|
|
border-radius: 999px;
|
|
background: transparent;
|
|
color: var(--muted);
|
|
}
|
|
|
|
.appearance-reset svg {
|
|
width: 14px;
|
|
height: 14px;
|
|
}
|
|
|
|
.appearance-reset:hover {
|
|
border-color: var(--line);
|
|
background: var(--surface-soft);
|
|
color: var(--blue);
|
|
}
|
|
|
|
.appearance-grid {
|
|
display: grid;
|
|
gap: 8px;
|
|
}
|
|
|
|
.mode-grid,
|
|
.font-grid,
|
|
.sidebar-grid,
|
|
.layout-grid {
|
|
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
}
|
|
|
|
.color-preset-grid {
|
|
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
}
|
|
|
|
.radius-grid {
|
|
grid-template-columns: repeat(6, minmax(0, 1fr));
|
|
}
|
|
|
|
.density-grid {
|
|
grid-template-columns: repeat(4, minmax(0, 1fr));
|
|
}
|
|
|
|
.content-width-grid {
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
}
|
|
|
|
.appearance-choice,
|
|
.color-preset-choice {
|
|
position: relative;
|
|
display: grid;
|
|
gap: 6px;
|
|
min-width: 0;
|
|
border: 1px solid var(--line);
|
|
border-radius: var(--radius-md);
|
|
background: var(--surface);
|
|
color: var(--text);
|
|
padding: 6px;
|
|
text-align: center;
|
|
transition:
|
|
background 0.18s ease,
|
|
border-color 0.18s ease,
|
|
box-shadow 0.18s ease,
|
|
transform 0.18s ease;
|
|
}
|
|
|
|
.appearance-choice:hover,
|
|
.color-preset-choice:hover,
|
|
.appearance-choice.is-active,
|
|
.color-preset-choice.is-active {
|
|
border-color: var(--blue);
|
|
box-shadow: none;
|
|
}
|
|
|
|
.appearance-choice strong,
|
|
.color-preset-choice strong {
|
|
color: var(--primary);
|
|
font-size: 12px;
|
|
line-height: 1.25;
|
|
}
|
|
|
|
.choice-check {
|
|
position: absolute;
|
|
top: -7px;
|
|
right: -7px;
|
|
display: grid;
|
|
width: 24px;
|
|
height: 24px;
|
|
place-items: center;
|
|
border: 2px solid var(--card);
|
|
border-radius: 999px;
|
|
background: var(--blue);
|
|
color: white;
|
|
box-shadow: 0 8px 18px rgba(var(--accent-rgb), 0.24);
|
|
}
|
|
|
|
.choice-check svg {
|
|
width: 14px;
|
|
height: 14px;
|
|
}
|
|
|
|
.theme-mode-choice {
|
|
align-content: start;
|
|
padding: 0;
|
|
}
|
|
|
|
.mode-preview,
|
|
.layout-preview,
|
|
.dashboard-preview,
|
|
.content-width-preview,
|
|
.density-preview,
|
|
.radius-preview {
|
|
position: relative;
|
|
display: block;
|
|
overflow: hidden;
|
|
border-radius: var(--radius-lg);
|
|
background: var(--surface-soft);
|
|
}
|
|
|
|
.mode-preview {
|
|
height: 66px;
|
|
border: 1px solid var(--line);
|
|
}
|
|
|
|
.theme-mode-choice strong {
|
|
padding-bottom: 6px;
|
|
text-align: left;
|
|
}
|
|
|
|
.theme-mode-choice strong,
|
|
.layout-choice strong,
|
|
.content-width-choice strong,
|
|
.density-choice strong,
|
|
.font-choice strong,
|
|
.radius-choice strong {
|
|
padding-inline: 2px;
|
|
}
|
|
|
|
.theme-mode-choice .preview-sidebar {
|
|
position: absolute;
|
|
inset: 0 auto 0 0;
|
|
display: grid;
|
|
width: 30%;
|
|
align-content: start;
|
|
gap: 5px;
|
|
background: rgba(var(--primary-rgb), 0.08);
|
|
padding: 11px 8px;
|
|
}
|
|
|
|
.preview-sidebar i,
|
|
.density-preview i,
|
|
.content-width-preview i {
|
|
display: block;
|
|
height: 4px;
|
|
border-radius: 999px;
|
|
background: currentColor;
|
|
opacity: 0.55;
|
|
}
|
|
|
|
.preview-sidebar i:first-child {
|
|
width: 17px;
|
|
}
|
|
|
|
.preview-sidebar i:nth-child(2) {
|
|
width: 27px;
|
|
}
|
|
|
|
.preview-sidebar i:nth-child(3) {
|
|
width: 23px;
|
|
}
|
|
|
|
.preview-chart {
|
|
position: absolute;
|
|
left: 40%;
|
|
top: 29px;
|
|
display: flex;
|
|
align-items: end;
|
|
gap: 4px;
|
|
color: var(--blue);
|
|
}
|
|
|
|
.preview-chart i {
|
|
display: block;
|
|
width: 5px;
|
|
border-radius: 3px 3px 0 0;
|
|
background: currentColor;
|
|
}
|
|
|
|
.preview-chart i:first-child {
|
|
height: 11px;
|
|
}
|
|
|
|
.preview-chart i:nth-child(2) {
|
|
height: 16px;
|
|
}
|
|
|
|
.preview-chart i:nth-child(3) {
|
|
height: 24px;
|
|
}
|
|
|
|
.preview-pie {
|
|
position: absolute;
|
|
top: 14px;
|
|
right: 14px;
|
|
width: 28px;
|
|
height: 28px;
|
|
border-radius: 999px;
|
|
background: conic-gradient(var(--blue) 0 32%, var(--surface-strong) 32% 100%);
|
|
}
|
|
|
|
.preview-card {
|
|
position: absolute;
|
|
left: 38%;
|
|
right: 12px;
|
|
bottom: 9px;
|
|
height: 28px;
|
|
border-radius: var(--radius-md);
|
|
background: rgba(var(--primary-rgb), 0.1);
|
|
}
|
|
|
|
.theme-mode-choice.is-system .mode-preview {
|
|
background: linear-gradient(90deg, #252320 0 50%, #f4f2ef 50% 100%);
|
|
color: #d8d3ca;
|
|
}
|
|
|
|
.theme-mode-choice.is-light .mode-preview {
|
|
background: #f5f6f8;
|
|
color: #a9a9a9;
|
|
}
|
|
|
|
.theme-mode-choice.is-dark .mode-preview {
|
|
background: #12213a;
|
|
color: #6b94c6;
|
|
}
|
|
|
|
.color-preset-choice {
|
|
min-height: 74px;
|
|
align-content: start;
|
|
border-color: var(--line);
|
|
background: var(--card);
|
|
padding: 6px;
|
|
}
|
|
|
|
.color-preset-swatch {
|
|
position: relative;
|
|
display: block;
|
|
height: 44px;
|
|
overflow: hidden;
|
|
border: 1px solid var(--line);
|
|
border-radius: var(--radius-md);
|
|
background: var(--preset-surface);
|
|
}
|
|
|
|
.color-preset-choice strong {
|
|
text-align: center;
|
|
}
|
|
|
|
.preset-sidebar {
|
|
position: absolute;
|
|
inset: 0 auto 0 0;
|
|
display: grid;
|
|
width: 34%;
|
|
align-content: start;
|
|
gap: 4px;
|
|
background: var(--preset-sidebar);
|
|
padding: 7px 6px;
|
|
}
|
|
|
|
.preset-sidebar b,
|
|
.preset-main b {
|
|
display: block;
|
|
height: 4px;
|
|
border-radius: 999px;
|
|
}
|
|
|
|
.preset-sidebar b {
|
|
background: var(--preset-primary);
|
|
opacity: 0.7;
|
|
}
|
|
|
|
.preset-sidebar b:first-child {
|
|
width: 18px;
|
|
}
|
|
|
|
.preset-sidebar b:nth-child(2) {
|
|
width: 30px;
|
|
background: var(--preset-active);
|
|
opacity: 1;
|
|
}
|
|
|
|
.preset-sidebar b:nth-child(3) {
|
|
width: 22px;
|
|
}
|
|
|
|
.preset-main {
|
|
position: absolute;
|
|
inset: 6px 6px 6px 42%;
|
|
display: grid;
|
|
align-content: start;
|
|
gap: 5px;
|
|
border-radius: var(--radius-sm);
|
|
background: var(--preset-card);
|
|
padding: 7px;
|
|
}
|
|
|
|
.preset-main b {
|
|
background: var(--preset-primary);
|
|
opacity: 0.22;
|
|
}
|
|
|
|
.preset-main b:first-child {
|
|
width: 68%;
|
|
}
|
|
|
|
.preset-main b:nth-child(2) {
|
|
width: 88%;
|
|
}
|
|
|
|
.preset-main b:nth-child(3) {
|
|
width: 52%;
|
|
}
|
|
|
|
.preset-accent {
|
|
position: absolute;
|
|
right: 10px;
|
|
bottom: 10px;
|
|
width: 22px;
|
|
height: 5px;
|
|
border-radius: 999px;
|
|
background: var(--preset-accent);
|
|
}
|
|
|
|
.font-choice {
|
|
min-height: 54px;
|
|
place-items: center;
|
|
}
|
|
|
|
.font-choice span:first-child {
|
|
color: var(--primary);
|
|
font-size: 20px;
|
|
font-weight: 800;
|
|
line-height: 1;
|
|
}
|
|
|
|
.font-auto span:first-child {
|
|
font-family: var(--app-font-family);
|
|
}
|
|
|
|
.font-sans span:first-child {
|
|
font-family:
|
|
Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI",
|
|
"PingFang SC", "Microsoft YaHei", sans-serif;
|
|
}
|
|
|
|
.font-serif span:first-child {
|
|
font-family: Georgia, "Times New Roman", "Songti SC", "SimSun", serif;
|
|
}
|
|
|
|
.radius-choice {
|
|
min-height: 52px;
|
|
place-items: center;
|
|
}
|
|
|
|
.radius-preview {
|
|
width: 100%;
|
|
height: 24px;
|
|
border: 1px solid currentColor;
|
|
border-radius: var(--preview-radius);
|
|
color: var(--muted);
|
|
}
|
|
|
|
.radius-preview::before {
|
|
content: "";
|
|
position: absolute;
|
|
top: 7px;
|
|
left: 10px;
|
|
width: 16px;
|
|
height: 12px;
|
|
border-top: 2px solid currentColor;
|
|
border-left: 2px solid currentColor;
|
|
border-top-left-radius: var(--preview-radius);
|
|
}
|
|
|
|
.density-choice {
|
|
min-height: 54px;
|
|
}
|
|
|
|
.density-preview {
|
|
display: grid;
|
|
height: 27px;
|
|
align-content: center;
|
|
gap: 4px;
|
|
color: var(--muted);
|
|
}
|
|
|
|
.density-preview i:first-child {
|
|
width: 72%;
|
|
}
|
|
|
|
.density-preview i:nth-child(2) {
|
|
width: 64%;
|
|
}
|
|
|
|
.density-preview i:nth-child(3) {
|
|
width: 56%;
|
|
}
|
|
|
|
.density-preview i:nth-child(4) {
|
|
width: 48%;
|
|
}
|
|
|
|
.density-preview i:nth-child(5) {
|
|
width: 42%;
|
|
}
|
|
|
|
.layout-choice {
|
|
min-height: 86px;
|
|
}
|
|
|
|
.layout-preview {
|
|
height: 58px;
|
|
border: 1px solid var(--line);
|
|
}
|
|
|
|
.layout-side {
|
|
position: absolute;
|
|
top: 9px;
|
|
bottom: 9px;
|
|
left: 9px;
|
|
display: grid;
|
|
width: 30px;
|
|
align-content: start;
|
|
gap: 5px;
|
|
border-radius: var(--radius-md);
|
|
background: rgba(var(--accent-rgb), 0.26);
|
|
padding: 8px 6px;
|
|
}
|
|
|
|
.layout-side i {
|
|
display: block;
|
|
height: 5px;
|
|
border-radius: 999px;
|
|
background: var(--primary);
|
|
opacity: 0.62;
|
|
}
|
|
|
|
.layout-side i:first-child {
|
|
width: 15px;
|
|
}
|
|
|
|
.layout-side i:nth-child(2) {
|
|
width: 21px;
|
|
}
|
|
|
|
.layout-side i:nth-child(3) {
|
|
width: 18px;
|
|
}
|
|
|
|
.layout-main {
|
|
position: absolute;
|
|
inset: 9px 9px 9px 46px;
|
|
border-radius: var(--radius-md);
|
|
background: rgba(var(--primary-rgb), 0.12);
|
|
}
|
|
|
|
.sidebar-choice.is-embedded .layout-side {
|
|
top: 0;
|
|
bottom: 0;
|
|
left: 0;
|
|
border-radius: 0;
|
|
}
|
|
|
|
.sidebar-choice.is-edge .layout-side {
|
|
top: 0;
|
|
bottom: 0;
|
|
left: 0;
|
|
width: 40px;
|
|
border-radius: 0;
|
|
background: var(--primary);
|
|
}
|
|
|
|
.sidebar-choice.is-edge .layout-main {
|
|
left: 40px;
|
|
}
|
|
|
|
.dashboard-preview {
|
|
height: 58px;
|
|
border: 1px solid var(--line);
|
|
}
|
|
|
|
.dashboard-preview i {
|
|
position: absolute;
|
|
display: block;
|
|
border-radius: var(--radius-md);
|
|
background: rgba(var(--primary-rgb), 0.24);
|
|
}
|
|
|
|
.dashboard-preview i:first-child {
|
|
inset: 8px auto auto 8px;
|
|
width: 24px;
|
|
height: 42px;
|
|
background: rgba(var(--accent-rgb), 0.46);
|
|
}
|
|
|
|
.dashboard-preview i:nth-child(2) {
|
|
top: 8px;
|
|
left: 40px;
|
|
right: 9px;
|
|
height: 6px;
|
|
}
|
|
|
|
.dashboard-preview i:nth-child(3) {
|
|
top: 23px;
|
|
left: 40px;
|
|
width: 23px;
|
|
height: 6px;
|
|
}
|
|
|
|
.dashboard-preview i:nth-child(4) {
|
|
left: 40px;
|
|
bottom: 9px;
|
|
width: 42px;
|
|
height: 21px;
|
|
}
|
|
|
|
.dashboard-preview i:nth-child(5) {
|
|
right: 10px;
|
|
bottom: 12px;
|
|
width: 22px;
|
|
height: 22px;
|
|
border-radius: 999px;
|
|
}
|
|
|
|
.dashboard-layout-choice.is-compact .dashboard-preview i:first-child {
|
|
width: 6px;
|
|
}
|
|
|
|
.dashboard-layout-choice.is-compact .dashboard-preview i:nth-child(n + 2) {
|
|
left: 24px;
|
|
}
|
|
|
|
.dashboard-layout-choice.is-fullscreen .dashboard-preview i:first-child {
|
|
display: none;
|
|
}
|
|
|
|
.dashboard-layout-choice.is-fullscreen .dashboard-preview i:nth-child(n + 2) {
|
|
left: 9px;
|
|
}
|
|
|
|
.content-width-choice {
|
|
min-height: 54px;
|
|
}
|
|
|
|
.content-width-preview {
|
|
display: grid;
|
|
height: 27px;
|
|
align-content: center;
|
|
gap: 5px;
|
|
color: var(--muted);
|
|
}
|
|
|
|
.content-width-preview i {
|
|
height: 4px;
|
|
}
|
|
|
|
.content-width-choice.is-full .content-width-preview i {
|
|
width: 100%;
|
|
}
|
|
|
|
.content-width-choice.is-full .content-width-preview i:nth-child(2) {
|
|
width: 92%;
|
|
}
|
|
|
|
.content-width-choice.is-full .content-width-preview i:nth-child(3) {
|
|
width: 74%;
|
|
}
|
|
|
|
.content-width-choice.is-centered .content-width-preview {
|
|
justify-items: center;
|
|
}
|
|
|
|
.content-width-choice.is-centered .content-width-preview i:first-child {
|
|
width: 100%;
|
|
}
|
|
|
|
.content-width-choice.is-centered .content-width-preview i:nth-child(2) {
|
|
width: 55%;
|
|
}
|
|
|
|
.content-width-choice.is-centered .content-width-preview i:nth-child(3) {
|
|
width: 38%;
|
|
}
|
|
|
|
.modal-backdrop {
|
|
position: fixed;
|
|
inset: 0;
|
|
z-index: 80;
|
|
display: grid;
|
|
align-items: start;
|
|
justify-items: center;
|
|
background: var(--modal-backdrop);
|
|
overflow-y: auto;
|
|
padding: 48px 24px;
|
|
}
|
|
|
|
.profile-modal {
|
|
width: min(720px, 100%);
|
|
max-height: min(760px, calc(100vh - 48px));
|
|
overflow: auto;
|
|
border: 1px solid var(--line);
|
|
border-radius: var(--radius-lg);
|
|
background: var(--card);
|
|
box-shadow: 0 26px 64px rgba(var(--primary-rgb), 0.22);
|
|
}
|
|
|
|
.employee-modal {
|
|
width: min(980px, 100%);
|
|
max-height: min(780px, calc(100vh - 48px));
|
|
}
|
|
|
|
.modal-header {
|
|
display: flex;
|
|
align-items: flex-start;
|
|
justify-content: space-between;
|
|
gap: 18px;
|
|
border-bottom: 1px solid var(--line-soft);
|
|
padding: 22px 24px;
|
|
}
|
|
|
|
.modal-header h2 {
|
|
margin: 0;
|
|
color: var(--primary);
|
|
font-size: 22px;
|
|
}
|
|
|
|
.modal-header p,
|
|
.profile-avatar-row p {
|
|
margin: 6px 0 0;
|
|
color: var(--muted);
|
|
}
|
|
|
|
.profile-avatar-row {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 18px;
|
|
padding: 24px;
|
|
}
|
|
|
|
.profile-avatar-row strong {
|
|
display: block;
|
|
color: var(--primary);
|
|
font-size: 18px;
|
|
}
|
|
|
|
.avatar-upload {
|
|
position: relative;
|
|
margin-top: 14px;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.avatar-upload input {
|
|
position: absolute;
|
|
inset: 0;
|
|
opacity: 0;
|
|
}
|
|
|
|
.profile-form {
|
|
display: grid;
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
gap: 18px;
|
|
border-top: 1px solid var(--line-soft);
|
|
padding: var(--panel-padding);
|
|
}
|
|
|
|
.employee-modal-form {
|
|
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
}
|
|
|
|
.password-form {
|
|
display: grid;
|
|
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
gap: 18px;
|
|
border-top: 1px solid var(--line-soft);
|
|
padding: var(--panel-padding);
|
|
}
|
|
|
|
.form-section-head {
|
|
display: flex;
|
|
align-items: flex-start;
|
|
justify-content: space-between;
|
|
gap: 16px;
|
|
}
|
|
|
|
.form-section-head h3 {
|
|
margin: 0;
|
|
color: var(--primary);
|
|
font-size: 18px;
|
|
}
|
|
|
|
.form-section-head p {
|
|
margin: 6px 0 0;
|
|
color: var(--muted);
|
|
line-height: 1.5;
|
|
}
|
|
|
|
.view-stack {
|
|
display: grid;
|
|
gap: var(--content-gap);
|
|
}
|
|
|
|
.page-header {
|
|
display: flex;
|
|
align-items: flex-end;
|
|
justify-content: space-between;
|
|
gap: 20px;
|
|
}
|
|
|
|
.page-header h1 {
|
|
margin: 0;
|
|
color: var(--primary);
|
|
font-size: 32px;
|
|
line-height: 1.2;
|
|
}
|
|
|
|
.page-header p,
|
|
.panel-header p,
|
|
.action-card p {
|
|
margin: 8px 0 0;
|
|
color: var(--muted);
|
|
line-height: 1.6;
|
|
}
|
|
|
|
.header-actions,
|
|
.form-actions {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 12px;
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
.align-right {
|
|
justify-content: flex-end;
|
|
}
|
|
|
|
.primary-button,
|
|
.secondary-button,
|
|
.link-button,
|
|
.file-button {
|
|
display: inline-flex;
|
|
min-height: var(--control-height);
|
|
align-items: center;
|
|
justify-content: center;
|
|
gap: 9px;
|
|
border-radius: var(--radius-md);
|
|
border: 1px solid transparent;
|
|
padding: 0 18px;
|
|
font-weight: 700;
|
|
transition:
|
|
background 0.18s ease,
|
|
border-color 0.18s ease,
|
|
box-shadow 0.18s ease,
|
|
transform 0.18s ease;
|
|
}
|
|
|
|
.primary-button {
|
|
background: var(--blue);
|
|
color: white;
|
|
box-shadow: 0 12px 22px rgba(var(--accent-rgb), 0.16);
|
|
}
|
|
|
|
.primary-button:hover {
|
|
background: var(--blue);
|
|
filter: brightness(0.94);
|
|
}
|
|
|
|
.secondary-button {
|
|
border-color: var(--line);
|
|
background: var(--secondary-bg);
|
|
color: var(--primary);
|
|
}
|
|
|
|
.secondary-button:hover {
|
|
border-color: var(--secondary-hover-border);
|
|
background: var(--secondary-hover-bg);
|
|
}
|
|
|
|
.link-button {
|
|
min-height: auto;
|
|
border: 0;
|
|
background: transparent;
|
|
color: var(--blue);
|
|
padding: 0;
|
|
font-weight: 800;
|
|
}
|
|
|
|
.full {
|
|
width: 100%;
|
|
}
|
|
|
|
.stats-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(4, minmax(0, 1fr));
|
|
gap: var(--content-gap);
|
|
}
|
|
|
|
.stat-card,
|
|
.panel,
|
|
.action-card {
|
|
border: 1px solid var(--line);
|
|
border-radius: var(--radius-lg);
|
|
background: var(--card);
|
|
box-shadow: 0 8px 20px rgba(var(--primary-rgb), 0.04);
|
|
}
|
|
|
|
.stat-card {
|
|
display: grid;
|
|
gap: 12px;
|
|
min-height: 178px;
|
|
padding: var(--panel-padding);
|
|
}
|
|
|
|
.stat-head {
|
|
display: flex;
|
|
align-items: flex-start;
|
|
justify-content: space-between;
|
|
gap: 14px;
|
|
}
|
|
|
|
.stat-icon,
|
|
.action-icon {
|
|
display: grid;
|
|
place-items: center;
|
|
border-radius: var(--radius-md);
|
|
}
|
|
|
|
.stat-icon {
|
|
width: 52px;
|
|
height: 52px;
|
|
background: var(--surface-soft);
|
|
color: var(--primary);
|
|
}
|
|
|
|
.tone-blue .stat-icon {
|
|
background: var(--blue-soft);
|
|
color: var(--blue);
|
|
}
|
|
|
|
.tone-green .stat-icon {
|
|
background: var(--green-soft);
|
|
color: var(--green);
|
|
}
|
|
|
|
.tone-red .stat-icon {
|
|
background: var(--red-soft);
|
|
color: var(--red);
|
|
}
|
|
|
|
.stat-meta,
|
|
.status-chip {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
min-height: 26px;
|
|
border-radius: var(--radius-sm);
|
|
padding: 0 10px;
|
|
font-size: 12px;
|
|
font-weight: 800;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.stat-meta,
|
|
.status-chip.neutral {
|
|
background: var(--surface-soft);
|
|
color: var(--muted);
|
|
}
|
|
|
|
.status-chip.green {
|
|
background: var(--green-soft);
|
|
color: var(--green);
|
|
}
|
|
|
|
.status-chip.red {
|
|
background: var(--red-soft);
|
|
color: var(--red);
|
|
}
|
|
|
|
.stat-card p {
|
|
margin: 0;
|
|
color: var(--muted);
|
|
font-size: 13px;
|
|
font-weight: 800;
|
|
}
|
|
|
|
.stat-card strong {
|
|
color: var(--primary);
|
|
font-size: 28px;
|
|
line-height: 1.15;
|
|
}
|
|
|
|
.employee-header-actions {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: flex-end;
|
|
gap: 12px;
|
|
}
|
|
|
|
.employee-inline-metric {
|
|
display: flex;
|
|
min-height: 48px;
|
|
align-items: center;
|
|
gap: 10px;
|
|
border: 1px solid var(--line);
|
|
border-radius: var(--radius-md);
|
|
background: rgba(255, 255, 255, 0.58);
|
|
color: var(--primary);
|
|
padding: 8px 12px;
|
|
}
|
|
|
|
.employee-inline-icon {
|
|
display: grid;
|
|
width: 34px;
|
|
height: 34px;
|
|
place-items: center;
|
|
border-radius: var(--radius-sm);
|
|
background: var(--blue-soft);
|
|
color: var(--blue);
|
|
}
|
|
|
|
.employee-inline-metric div {
|
|
display: grid;
|
|
gap: 1px;
|
|
}
|
|
|
|
.employee-inline-metric span {
|
|
color: var(--muted);
|
|
font-size: 12px;
|
|
font-weight: 800;
|
|
}
|
|
|
|
.employee-inline-metric strong {
|
|
color: var(--primary);
|
|
font-size: 21px;
|
|
line-height: 1;
|
|
}
|
|
|
|
.employee-inline-metric em {
|
|
border-radius: var(--radius-sm);
|
|
background: var(--surface-soft);
|
|
color: var(--muted);
|
|
padding: 4px 8px;
|
|
font-size: 12px;
|
|
font-style: normal;
|
|
font-weight: 800;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.dashboard-grid,
|
|
.action-grid {
|
|
display: grid;
|
|
grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.6fr);
|
|
gap: var(--content-gap);
|
|
}
|
|
|
|
.action-grid {
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
}
|
|
|
|
.panel {
|
|
overflow: hidden;
|
|
}
|
|
|
|
.panel-header {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
gap: 16px;
|
|
border-bottom: 1px solid var(--line-soft);
|
|
padding: calc(var(--panel-padding) - 2px) var(--panel-padding);
|
|
}
|
|
|
|
.panel-header h2,
|
|
.action-card h2 {
|
|
margin: 0;
|
|
color: var(--primary);
|
|
font-size: 21px;
|
|
line-height: 1.3;
|
|
}
|
|
|
|
.sync-panel,
|
|
.trend-panel {
|
|
min-height: 360px;
|
|
}
|
|
|
|
.compact-list,
|
|
.detail-grid {
|
|
display: grid;
|
|
gap: 18px;
|
|
margin: 0;
|
|
padding: var(--panel-padding);
|
|
}
|
|
|
|
.compact-list div,
|
|
.detail-grid div {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
gap: 18px;
|
|
border-bottom: 1px solid var(--line-soft);
|
|
padding-bottom: 16px;
|
|
}
|
|
|
|
.compact-list dt,
|
|
.detail-grid dt {
|
|
color: var(--muted);
|
|
font-size: 13px;
|
|
}
|
|
|
|
.compact-list dd,
|
|
.detail-grid dd {
|
|
margin: 0;
|
|
color: var(--primary);
|
|
font-weight: 800;
|
|
text-align: right;
|
|
}
|
|
|
|
.sync-panel .primary-button {
|
|
margin: 0 24px 24px;
|
|
width: calc(100% - 48px);
|
|
}
|
|
|
|
.legend-line {
|
|
display: flex;
|
|
gap: 16px;
|
|
color: var(--muted);
|
|
font-size: 13px;
|
|
}
|
|
|
|
.legend-line span {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 8px;
|
|
}
|
|
|
|
.legend-line i {
|
|
display: inline-block;
|
|
width: 12px;
|
|
height: 12px;
|
|
border-radius: 999px;
|
|
background: var(--surface-strong);
|
|
}
|
|
|
|
.legend-line .legend-blue {
|
|
background: var(--blue);
|
|
}
|
|
|
|
.bar-chart {
|
|
display: grid;
|
|
height: 250px;
|
|
grid-template-columns: repeat(6, minmax(36px, 1fr));
|
|
align-items: end;
|
|
gap: var(--content-gap);
|
|
padding: 24px 34px 28px;
|
|
}
|
|
|
|
.bar-item {
|
|
position: relative;
|
|
display: grid;
|
|
height: 100%;
|
|
align-items: end;
|
|
justify-items: center;
|
|
gap: 10px;
|
|
}
|
|
|
|
.bar-item strong,
|
|
.bonus-bar {
|
|
display: block;
|
|
width: 50px;
|
|
border-radius: var(--radius-sm) var(--radius-sm) 0 0;
|
|
}
|
|
|
|
.bar-item strong {
|
|
background: var(--blue);
|
|
}
|
|
|
|
.bonus-bar {
|
|
position: absolute;
|
|
bottom: 22px;
|
|
background: var(--surface-strong);
|
|
}
|
|
|
|
.bar-item em {
|
|
font-style: normal;
|
|
color: var(--muted);
|
|
font-size: 13px;
|
|
font-weight: 700;
|
|
}
|
|
|
|
.action-card {
|
|
position: relative;
|
|
display: grid;
|
|
align-content: start;
|
|
gap: 18px;
|
|
min-height: 260px;
|
|
padding: calc(var(--panel-padding) + 8px);
|
|
}
|
|
|
|
.action-icon {
|
|
width: 62px;
|
|
height: 62px;
|
|
}
|
|
|
|
.action-icon.blue {
|
|
background: var(--blue-soft);
|
|
color: var(--blue);
|
|
}
|
|
|
|
.action-icon.green {
|
|
background: var(--green-soft);
|
|
color: var(--green);
|
|
}
|
|
|
|
.file-button {
|
|
position: relative;
|
|
width: fit-content;
|
|
background: var(--blue);
|
|
color: white;
|
|
}
|
|
|
|
.file-button input {
|
|
position: absolute;
|
|
inset: 0;
|
|
opacity: 0;
|
|
}
|
|
|
|
.form-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(4, minmax(0, 1fr));
|
|
gap: 18px;
|
|
padding: var(--panel-padding);
|
|
}
|
|
|
|
.compact-form {
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
}
|
|
|
|
.compact-field {
|
|
min-width: 170px;
|
|
}
|
|
|
|
.compact-field span {
|
|
font-size: 12px;
|
|
}
|
|
|
|
.compact-stats-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(6, minmax(0, 1fr));
|
|
gap: 10px;
|
|
padding: 0 var(--panel-padding) var(--panel-padding);
|
|
}
|
|
|
|
.compact-stat {
|
|
min-width: 0;
|
|
border: 1px solid var(--line);
|
|
border-radius: var(--radius-md);
|
|
background: var(--surface);
|
|
padding: 12px 14px;
|
|
}
|
|
|
|
.compact-stat span,
|
|
.workflow-steps span {
|
|
color: var(--muted);
|
|
font-size: 12px;
|
|
}
|
|
|
|
.compact-stat strong {
|
|
display: block;
|
|
margin-top: 6px;
|
|
color: var(--primary);
|
|
font-size: 19px;
|
|
line-height: 1.2;
|
|
}
|
|
|
|
.organization-summary-strip {
|
|
display: grid;
|
|
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
gap: 10px;
|
|
border: 1px solid var(--line);
|
|
border-radius: var(--radius-lg);
|
|
background: var(--card);
|
|
box-shadow: 0 8px 20px rgba(var(--primary-rgb), 0.04);
|
|
padding: 10px;
|
|
}
|
|
|
|
.organization-summary-strip div {
|
|
display: grid;
|
|
grid-template-columns: auto auto minmax(0, 1fr) auto;
|
|
align-items: center;
|
|
gap: 10px;
|
|
min-height: 50px;
|
|
border-radius: var(--radius-md);
|
|
background: var(--surface);
|
|
padding: 10px 12px;
|
|
}
|
|
|
|
.organization-summary-strip svg {
|
|
color: var(--blue);
|
|
}
|
|
|
|
.organization-summary-strip span,
|
|
.organization-summary-strip small {
|
|
color: var(--muted);
|
|
font-size: 12px;
|
|
font-weight: 800;
|
|
}
|
|
|
|
.organization-summary-strip strong {
|
|
min-width: 0;
|
|
overflow: hidden;
|
|
color: var(--primary);
|
|
font-size: 18px;
|
|
line-height: 1.15;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.organization-tree-layout {
|
|
display: grid;
|
|
grid-template-columns: minmax(340px, 0.9fr) minmax(520px, 1.45fr);
|
|
gap: var(--content-gap);
|
|
align-items: start;
|
|
}
|
|
|
|
.organization-tree-panel,
|
|
.organization-detail-panel {
|
|
min-height: 620px;
|
|
}
|
|
|
|
.organization-tree-tools,
|
|
.organization-detail-actions {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: flex-end;
|
|
gap: 10px;
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
.link-button.muted {
|
|
color: var(--muted);
|
|
}
|
|
|
|
.compact-button {
|
|
min-height: 36px;
|
|
padding: 0 12px;
|
|
font-size: 13px;
|
|
}
|
|
|
|
.organization-tree {
|
|
display: grid;
|
|
align-content: start;
|
|
gap: 4px;
|
|
max-height: calc(100vh - 330px);
|
|
min-height: 520px;
|
|
overflow: auto;
|
|
padding: 12px;
|
|
}
|
|
|
|
.organization-tree-empty {
|
|
display: flex;
|
|
min-height: 240px;
|
|
align-items: center;
|
|
justify-content: center;
|
|
gap: 8px;
|
|
color: var(--muted);
|
|
font-weight: 800;
|
|
}
|
|
|
|
.tree-node {
|
|
display: grid;
|
|
grid-template-columns: 22px 32px minmax(0, 1fr) auto;
|
|
width: 100%;
|
|
min-height: 50px;
|
|
align-items: center;
|
|
gap: 8px;
|
|
border: 0;
|
|
border-radius: var(--radius-md);
|
|
background: transparent;
|
|
color: var(--text);
|
|
padding: 7px 10px 7px calc(10px + (var(--tree-depth) * 20px));
|
|
text-align: left;
|
|
transition:
|
|
background 0.18s ease,
|
|
box-shadow 0.18s ease,
|
|
color 0.18s ease,
|
|
opacity 0.18s ease;
|
|
}
|
|
|
|
.tree-node:hover {
|
|
background: var(--surface);
|
|
}
|
|
|
|
.tree-node.is-selected {
|
|
background: var(--blue-soft);
|
|
box-shadow: inset 3px 0 0 var(--blue);
|
|
}
|
|
|
|
.tree-node.is-inactive {
|
|
opacity: 0.66;
|
|
}
|
|
|
|
.tree-toggle {
|
|
display: grid;
|
|
width: 22px;
|
|
height: 22px;
|
|
place-items: center;
|
|
border-radius: var(--radius-sm);
|
|
color: var(--muted);
|
|
}
|
|
|
|
.tree-toggle:not(.is-placeholder):hover {
|
|
background: rgba(var(--accent-rgb), 0.1);
|
|
color: var(--blue);
|
|
}
|
|
|
|
.tree-toggle.is-placeholder {
|
|
visibility: hidden;
|
|
}
|
|
|
|
.tree-node-icon {
|
|
display: grid;
|
|
width: 32px;
|
|
height: 32px;
|
|
place-items: center;
|
|
border-radius: var(--radius-sm);
|
|
background: var(--surface-soft);
|
|
color: var(--primary);
|
|
}
|
|
|
|
.tree-node-position .tree-node-icon {
|
|
background: var(--green-soft);
|
|
color: var(--green);
|
|
}
|
|
|
|
.tree-node-main {
|
|
display: grid;
|
|
gap: 3px;
|
|
min-width: 0;
|
|
}
|
|
|
|
.tree-node-main strong,
|
|
.tree-node-main small {
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.tree-node-main strong {
|
|
color: var(--primary);
|
|
font-size: 14px;
|
|
line-height: 1.2;
|
|
}
|
|
|
|
.tree-node-main small {
|
|
color: var(--muted);
|
|
font-size: 12px;
|
|
font-weight: 700;
|
|
}
|
|
|
|
.tree-node .status-chip {
|
|
min-height: 22px;
|
|
padding: 0 8px;
|
|
font-size: 11px;
|
|
}
|
|
|
|
.organization-detail-header {
|
|
align-items: flex-start;
|
|
}
|
|
|
|
.organization-node-summary {
|
|
display: grid;
|
|
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
gap: 10px;
|
|
border-bottom: 1px solid var(--line-soft);
|
|
background: var(--surface);
|
|
padding: 12px var(--panel-padding);
|
|
}
|
|
|
|
.organization-node-summary div {
|
|
min-width: 0;
|
|
border: 1px solid var(--line-soft);
|
|
border-radius: var(--radius-md);
|
|
background: var(--card);
|
|
padding: 10px 12px;
|
|
}
|
|
|
|
.organization-node-summary span {
|
|
display: block;
|
|
color: var(--muted);
|
|
font-size: 12px;
|
|
font-weight: 800;
|
|
}
|
|
|
|
.organization-node-summary strong {
|
|
display: block;
|
|
min-width: 0;
|
|
overflow: hidden;
|
|
margin-top: 5px;
|
|
color: var(--primary);
|
|
font-size: 14px;
|
|
line-height: 1.3;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.organization-editor-form {
|
|
padding-top: 18px;
|
|
}
|
|
|
|
.workflow-steps {
|
|
display: grid;
|
|
grid-template-columns: repeat(5, minmax(0, 1fr));
|
|
gap: 8px;
|
|
padding: 0 var(--panel-padding) var(--panel-padding);
|
|
}
|
|
|
|
.workflow-steps span {
|
|
border: 1px solid var(--line);
|
|
border-radius: var(--radius-md);
|
|
background: var(--surface);
|
|
padding: 9px 10px;
|
|
text-align: center;
|
|
}
|
|
|
|
.user-form {
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
}
|
|
|
|
.span-row {
|
|
grid-column: 1 / -1;
|
|
}
|
|
|
|
.field {
|
|
display: grid;
|
|
gap: 8px;
|
|
}
|
|
|
|
.field span,
|
|
.checkbox-card span {
|
|
color: var(--muted);
|
|
font-size: 13px;
|
|
font-weight: 800;
|
|
}
|
|
|
|
.field input,
|
|
.field select,
|
|
.field textarea,
|
|
.input-with-icon {
|
|
min-height: var(--control-height);
|
|
width: 100%;
|
|
border: 1px solid var(--line);
|
|
border-radius: var(--radius-md);
|
|
background: var(--control-bg);
|
|
color: var(--text);
|
|
outline: none;
|
|
transition:
|
|
border-color 0.18s ease,
|
|
box-shadow 0.18s ease;
|
|
}
|
|
|
|
.field input,
|
|
.field select,
|
|
.field textarea {
|
|
padding: 0 13px;
|
|
}
|
|
|
|
.field textarea {
|
|
min-height: 112px;
|
|
resize: vertical;
|
|
padding: 12px 13px;
|
|
}
|
|
|
|
.field input:focus,
|
|
.field select:focus,
|
|
.field textarea:focus,
|
|
.input-with-icon:focus-within {
|
|
border-color: var(--blue);
|
|
box-shadow: 0 0 0 4px rgba(var(--accent-rgb), 0.12);
|
|
}
|
|
|
|
.checkbox-card,
|
|
.checkbox-line {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 10px;
|
|
}
|
|
|
|
.checkbox-card {
|
|
min-height: var(--control-height);
|
|
align-self: end;
|
|
border: 1px solid var(--line);
|
|
border-radius: var(--radius-md);
|
|
background: var(--control-bg);
|
|
padding: 0 14px;
|
|
}
|
|
|
|
.form-actions {
|
|
border-top: 1px solid var(--line-soft);
|
|
padding: 18px 24px 24px;
|
|
}
|
|
|
|
.search-form {
|
|
display: grid;
|
|
grid-template-columns: minmax(0, 1fr) auto;
|
|
align-items: end;
|
|
gap: 16px;
|
|
padding: 24px;
|
|
}
|
|
|
|
.table-filter-bar {
|
|
display: grid;
|
|
grid-template-columns: minmax(220px, 1fr) minmax(150px, 190px) auto;
|
|
align-items: end;
|
|
gap: 12px;
|
|
border-bottom: 1px solid var(--line-soft);
|
|
padding: 14px var(--panel-padding);
|
|
}
|
|
|
|
.table-filter-bar .field {
|
|
gap: 6px;
|
|
}
|
|
|
|
.table-filter-bar .field input,
|
|
.table-filter-bar .field select {
|
|
min-height: 40px;
|
|
}
|
|
|
|
.table-pagination {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
gap: 16px;
|
|
border-top: 1px solid var(--line-soft);
|
|
padding: 18px 24px 24px;
|
|
}
|
|
|
|
.table-pagination p {
|
|
margin: 0;
|
|
color: var(--muted);
|
|
font-weight: 700;
|
|
}
|
|
|
|
.table-pagination .form-actions {
|
|
border-top: 0;
|
|
padding: 0;
|
|
}
|
|
|
|
.compact-select,
|
|
.table-input,
|
|
.table-textarea {
|
|
border: 1px solid var(--line);
|
|
border-radius: var(--radius-sm);
|
|
background: var(--control-bg);
|
|
color: var(--text);
|
|
outline: 0;
|
|
}
|
|
|
|
.compact-select {
|
|
min-height: 38px;
|
|
padding: 0 12px;
|
|
}
|
|
|
|
.table-input {
|
|
min-height: 36px;
|
|
width: min(180px, 100%);
|
|
padding: 0 10px;
|
|
}
|
|
|
|
.table-textarea {
|
|
min-height: 54px;
|
|
width: min(320px, 100%);
|
|
resize: vertical;
|
|
padding: 8px 10px;
|
|
}
|
|
|
|
.table-wrap {
|
|
width: 100%;
|
|
overflow-x: auto;
|
|
}
|
|
|
|
.data-table {
|
|
width: 100%;
|
|
min-width: 860px;
|
|
border-collapse: collapse;
|
|
}
|
|
|
|
.data-table th,
|
|
.data-table td {
|
|
border-bottom: 1px solid var(--line-soft);
|
|
padding: var(--table-cell-y) var(--table-cell-x);
|
|
text-align: left;
|
|
vertical-align: middle;
|
|
}
|
|
|
|
.data-table th {
|
|
background: var(--table-header-bg);
|
|
color: var(--muted);
|
|
font-size: 12px;
|
|
font-weight: 800;
|
|
}
|
|
|
|
.data-table td {
|
|
color: var(--text);
|
|
}
|
|
|
|
.data-table tr:hover td {
|
|
background: var(--table-row-hover-bg);
|
|
}
|
|
|
|
.data-table td strong {
|
|
display: block;
|
|
color: var(--primary);
|
|
}
|
|
|
|
.data-table td span {
|
|
display: block;
|
|
margin-top: 4px;
|
|
color: var(--muted);
|
|
font-size: 12px;
|
|
}
|
|
|
|
.mono {
|
|
font-family: "JetBrains Mono", "SFMono-Regular", Consolas, monospace;
|
|
}
|
|
|
|
.strong {
|
|
font-weight: 800;
|
|
}
|
|
|
|
.note-cell {
|
|
max-width: 260px;
|
|
color: var(--muted);
|
|
}
|
|
|
|
.operation-log-table {
|
|
min-width: 1080px;
|
|
}
|
|
|
|
.operation-log-table td span {
|
|
max-width: 220px;
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.log-detail-cell {
|
|
max-width: 320px;
|
|
overflow: hidden;
|
|
color: var(--muted);
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.empty-state {
|
|
display: grid;
|
|
min-height: 150px;
|
|
place-items: center;
|
|
color: var(--muted);
|
|
padding: 24px;
|
|
}
|
|
|
|
.recent-list {
|
|
display: grid;
|
|
gap: 10px;
|
|
padding: 18px 24px 8px;
|
|
}
|
|
|
|
.recent-item {
|
|
display: grid;
|
|
grid-template-columns: auto minmax(0, 1fr) auto;
|
|
align-items: center;
|
|
gap: 14px;
|
|
width: 100%;
|
|
border: 1px solid var(--line-soft);
|
|
border-radius: var(--radius-md);
|
|
background: var(--control-bg);
|
|
color: var(--text);
|
|
padding: 14px;
|
|
text-align: left;
|
|
}
|
|
|
|
.recent-item:hover {
|
|
border-color: var(--blue);
|
|
}
|
|
|
|
.recent-item span,
|
|
.recent-item em {
|
|
display: block;
|
|
}
|
|
|
|
.recent-item strong {
|
|
color: var(--primary);
|
|
}
|
|
|
|
.recent-item em,
|
|
.recent-item small {
|
|
color: var(--muted);
|
|
font-style: normal;
|
|
}
|
|
|
|
.form-error,
|
|
.form-success {
|
|
margin: 0;
|
|
border-radius: var(--radius-md);
|
|
padding: 12px 14px;
|
|
font-weight: 700;
|
|
}
|
|
|
|
.form-error {
|
|
background: var(--red-soft);
|
|
color: var(--red);
|
|
}
|
|
|
|
.form-success {
|
|
background: var(--green-soft);
|
|
color: var(--green);
|
|
}
|
|
|
|
.spin {
|
|
animation: spin 0.9s linear infinite;
|
|
}
|
|
|
|
.login-screen {
|
|
display: grid;
|
|
min-height: 100vh;
|
|
grid-template-columns: minmax(400px, 40vw) minmax(0, 1fr);
|
|
background: var(--surface);
|
|
}
|
|
|
|
.login-form-side {
|
|
display: grid;
|
|
place-items: center;
|
|
padding: 42px 48px;
|
|
}
|
|
|
|
.login-card {
|
|
width: min(440px, 100%);
|
|
}
|
|
|
|
.login-brand {
|
|
margin-bottom: 24px;
|
|
}
|
|
|
|
.login-brand h1 {
|
|
margin: 18px 0 7px;
|
|
color: var(--primary);
|
|
font-size: 26px;
|
|
line-height: 1.2;
|
|
}
|
|
|
|
.login-brand p {
|
|
margin: 0;
|
|
color: var(--muted);
|
|
}
|
|
|
|
.form-stack {
|
|
display: grid;
|
|
gap: 16px;
|
|
}
|
|
|
|
.input-with-icon {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 12px;
|
|
padding: 0 13px;
|
|
}
|
|
|
|
.input-with-icon input {
|
|
min-height: var(--control-height);
|
|
flex: 1;
|
|
border: 0;
|
|
background: transparent;
|
|
outline: 0;
|
|
}
|
|
|
|
.input-action {
|
|
display: grid;
|
|
width: 34px;
|
|
height: 34px;
|
|
place-items: center;
|
|
border: 0;
|
|
border-radius: 999px;
|
|
background: transparent;
|
|
color: var(--muted);
|
|
}
|
|
|
|
.input-action:hover {
|
|
background: var(--surface-soft);
|
|
}
|
|
|
|
.login-footer {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 14px 22px;
|
|
margin-top: 34px;
|
|
border-top: 1px solid var(--line);
|
|
padding-top: 20px;
|
|
color: var(--muted);
|
|
}
|
|
|
|
.login-footer p {
|
|
flex-basis: 100%;
|
|
margin: 0;
|
|
}
|
|
|
|
.login-footer span {
|
|
color: var(--primary);
|
|
font-weight: 700;
|
|
}
|
|
|
|
.login-visual {
|
|
position: relative;
|
|
display: grid;
|
|
place-items: center;
|
|
overflow: hidden;
|
|
border-left: 1px solid var(--line);
|
|
background: var(--surface-soft);
|
|
color: var(--text);
|
|
padding: 44px;
|
|
}
|
|
|
|
.ledger-visual {
|
|
width: min(560px, 100%);
|
|
border: 1px solid var(--line);
|
|
border-radius: var(--radius-lg);
|
|
background: var(--card);
|
|
padding: 32px;
|
|
box-shadow: var(--shadow);
|
|
}
|
|
|
|
.ledger-visual h2 {
|
|
margin: 22px 0 14px;
|
|
color: var(--primary);
|
|
font-size: 31px;
|
|
line-height: 1.25;
|
|
}
|
|
|
|
.ledger-visual p {
|
|
margin: 0;
|
|
color: var(--muted);
|
|
font-size: 15px;
|
|
line-height: 1.65;
|
|
}
|
|
|
|
.visual-metrics {
|
|
display: grid;
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
gap: 18px;
|
|
margin-top: 28px;
|
|
border-top: 1px solid var(--line);
|
|
padding-top: 22px;
|
|
}
|
|
|
|
.visual-metrics strong,
|
|
.visual-metrics span {
|
|
display: block;
|
|
}
|
|
|
|
.visual-metrics strong {
|
|
color: var(--primary);
|
|
font-size: 25px;
|
|
}
|
|
|
|
.visual-metrics span {
|
|
margin-top: 4px;
|
|
color: var(--muted);
|
|
}
|
|
|
|
.security-line {
|
|
position: absolute;
|
|
right: 32px;
|
|
bottom: 28px;
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 8px;
|
|
color: var(--muted);
|
|
font-family: "JetBrains Mono", "SFMono-Regular", Consolas, monospace;
|
|
font-size: 13px;
|
|
}
|
|
|
|
@keyframes spin {
|
|
to {
|
|
transform: rotate(360deg);
|
|
}
|
|
}
|
|
|
|
@media (max-width: 1120px) {
|
|
.appearance-panel {
|
|
width: min(480px, calc(100vw - 16px));
|
|
padding: 14px;
|
|
}
|
|
|
|
.color-preset-grid,
|
|
.density-grid {
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
}
|
|
|
|
.radius-grid {
|
|
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
}
|
|
|
|
.stats-grid,
|
|
.dashboard-grid,
|
|
.action-grid,
|
|
.compact-stats-grid,
|
|
.form-grid,
|
|
.workflow-steps,
|
|
.password-form {
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
}
|
|
|
|
.organization-tree-layout {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
|
|
.login-screen {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
|
|
.login-visual {
|
|
display: none;
|
|
}
|
|
}
|
|
|
|
@media (max-width: 820px) {
|
|
.main-shell {
|
|
margin-left: 0;
|
|
}
|
|
|
|
.sidebar {
|
|
transform: translateX(-100%);
|
|
}
|
|
|
|
.sidebar.is-open {
|
|
transform: translateX(0);
|
|
}
|
|
|
|
.sidebar-scrim {
|
|
position: fixed;
|
|
inset: 0;
|
|
z-index: 25;
|
|
background: var(--modal-backdrop);
|
|
}
|
|
|
|
.mobile-menu {
|
|
display: grid;
|
|
}
|
|
|
|
.topbar {
|
|
padding: 0 18px;
|
|
}
|
|
|
|
.global-search {
|
|
width: min(100%, 420px);
|
|
min-width: 0;
|
|
}
|
|
|
|
.user-text {
|
|
display: none;
|
|
}
|
|
|
|
.page-shell {
|
|
padding: 22px;
|
|
}
|
|
|
|
.page-header {
|
|
align-items: stretch;
|
|
flex-direction: column;
|
|
}
|
|
|
|
.mode-grid,
|
|
.font-grid,
|
|
.sidebar-grid,
|
|
.layout-grid,
|
|
.content-width-grid {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
|
|
.header-actions,
|
|
.form-actions {
|
|
width: 100%;
|
|
}
|
|
|
|
.employee-header-actions {
|
|
justify-content: flex-start;
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
.employee-inline-metric {
|
|
flex: 0 1 auto;
|
|
}
|
|
|
|
.table-pagination {
|
|
align-items: stretch;
|
|
flex-direction: column;
|
|
}
|
|
|
|
.header-actions > *,
|
|
.form-actions > * {
|
|
flex: 1 1 auto;
|
|
}
|
|
}
|
|
|
|
@media (max-width: 640px) {
|
|
.appearance-panel {
|
|
width: 100vw;
|
|
max-height: 100vh;
|
|
border-radius: 0;
|
|
padding: 16px;
|
|
}
|
|
|
|
.appearance-panel-header h2 {
|
|
font-size: 17px;
|
|
}
|
|
|
|
.appearance-section-head h3 {
|
|
font-size: 15px;
|
|
}
|
|
|
|
.color-preset-grid,
|
|
.radius-grid,
|
|
.density-grid {
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
}
|
|
|
|
.stats-grid,
|
|
.organization-summary-strip,
|
|
.dashboard-grid,
|
|
.action-grid,
|
|
.compact-stats-grid,
|
|
.form-grid,
|
|
.user-form,
|
|
.password-form,
|
|
.search-form,
|
|
.table-filter-bar,
|
|
.visual-metrics,
|
|
.workflow-steps {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
|
|
.employee-header-actions {
|
|
align-items: stretch;
|
|
flex-direction: column;
|
|
}
|
|
|
|
.employee-inline-metric {
|
|
justify-content: flex-start;
|
|
}
|
|
|
|
.login-form-side {
|
|
padding: 28px 20px;
|
|
}
|
|
|
|
.topbar-actions {
|
|
gap: 8px;
|
|
}
|
|
|
|
.global-search {
|
|
display: none;
|
|
}
|
|
|
|
.page-header h1 {
|
|
font-size: 27px;
|
|
}
|
|
|
|
.organization-tree {
|
|
max-height: none;
|
|
min-height: 360px;
|
|
}
|
|
|
|
.organization-tree-panel,
|
|
.organization-detail-panel {
|
|
min-height: auto;
|
|
}
|
|
|
|
.organization-detail-actions {
|
|
justify-content: flex-start;
|
|
}
|
|
|
|
.organization-node-summary {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
}
|
|
|
|
@media (prefers-reduced-motion: reduce) {
|
|
:root {
|
|
--motion-duration: 1ms;
|
|
--motion-duration-fast: 1ms;
|
|
}
|
|
}
|