v1.0.0.0
StocketBase
- @font-face {
- font-family: "Space Grotesk";
- src: url("fonts/Space_Grotesk.ttf") format("truetype");
- font-display: swap;
- }
-
- @font-face {
- font-family: "Avatar Font";
- src: url("fonts/Noticia_Text.ttf") format("truetype");
- font-display: swap;
- }
-
- :root {
- --bg: #050506;
- --panel: #0c0c0f;
- --panel-alt: #131317;
- --panel-hover: #1a1a1f;
- --border: #232329;
- --border-strong: #303038;
- --text: #f8fafc;
- --muted: #8b8b97;
- --muted-dim: #5c5c68;
- --accent: #3862f5;
- --accent-hover: #5b82ff;
- --accent-dim: rgba(56, 98, 245, 0.18);
- --danger: #ef4444;
- --danger-dim: rgba(239, 68, 68, 0.14);
- --success: #10b981;
- --success-dim: rgba(16, 185, 129, 0.14);
- --warning: #f59e0b;
- --warning-dim: rgba(245, 158, 11, 0.14);
- --info: #0ea5e9;
- --info-dim: rgba(14, 165, 233, 0.14);
- --radius: 12px;
- --radius-sm: 8px;
- --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.3), 0 1px 1px rgba(0, 0, 0, 0.2);
- --shadow-md: 0 2px 6px rgba(0, 0, 0, 0.28), 0 16px 40px rgba(0, 0, 0, 0.34);
- --shadow-card: 0 1px 2px rgba(0, 0, 0, 0.2), 0 6px 16px rgba(0, 0, 0, 0.22);
- --inset-hairline: inset 0 1px 0 rgba(255, 255, 255, 0.04);
- }
-
- body[data-theme="light"] {
- --bg: #f8fafc;
- --panel: #ffffff;
- --panel-alt: #f1f5f9;
- --panel-hover: #e2e8f0;
- --border: #e2e8f0;
- --border-strong: #cbd5e1;
- --text: #0f172a;
- --muted: #64748b;
- --muted-dim: #94a3b8;
- --accent: #2e4fe0;
- --accent-hover: #2440c0;
- --accent-dim: rgba(46, 79, 224, 0.1);
- --danger: #dc2626;
- --danger-dim: rgba(220, 38, 38, 0.1);
- --success: #059669;
- --success-dim: rgba(5, 150, 105, 0.1);
- --warning: #d97706;
- --warning-dim: rgba(217, 119, 6, 0.1);
- --info: #0284c7;
- --info-dim: rgba(2, 132, 199, 0.1);
- --shadow-sm: 0 1px 2px rgba(20, 20, 30, 0.05), 0 1px 1px rgba(20, 20, 30, 0.04);
- --shadow-md: 0 2px 6px rgba(20, 20, 30, 0.05), 0 16px 40px rgba(20, 20, 30, 0.08);
- --shadow-card: 0 1px 2px rgba(20, 20, 30, 0.04), 0 6px 16px rgba(20, 20, 30, 0.05);
- --inset-hairline: inset 0 1px 0 rgba(255, 255, 255, 0.6);
- }
-
- * {
- box-sizing: border-box;
- }
-
- body {
- margin: 0;
- font-family: var(--dash-font-ui, "Space Grotesk"), -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
- background: var(--bg);
- color: var(--text);
- font-size: 14px;
- line-height: 1.5;
- -webkit-font-smoothing: antialiased;
- scrollbar-width: thin;
- scrollbar-color: var(--border-strong) transparent;
- }
-
- ::-webkit-scrollbar {
- width: 10px;
- height: 10px;
- }
-
- ::-webkit-scrollbar-track {
- background: transparent;
- }
-
- ::-webkit-scrollbar-thumb {
- background: var(--border-strong);
- border-radius: 999px;
- border: 2px solid var(--bg);
- background-clip: padding-box;
- }
-
- ::-webkit-scrollbar-thumb:hover {
- background: var(--muted-dim);
- background-clip: padding-box;
- }
-
- a,
- button,
- input,
- select,
- textarea,
- [role="button"] {
- -webkit-tap-highlight-color: transparent;
- }
-
- button {
- margin: 0;
- line-height: normal;
- }
-
- button::-moz-focus-inner {
- border: 0;
- padding: 0;
- }
-
- .icon {
- width: 18px;
- height: 18px;
- flex-shrink: 0;
- }
-
- .icon-sm {
- width: 15px;
- height: 15px;
- }
-
- .icon-lg {
- width: 22px;
- height: 22px;
- }
-
- .nav-icon-picker-row {
- display: flex;
- gap: 10px;
- align-items: center;
- }
-
- .nav-icon-picker-preview {
- display: flex;
- align-items: center;
- justify-content: center;
- width: 34px;
- height: 34px;
- border-radius: 8px;
- border: 1px solid var(--border);
- background: var(--panel-alt);
- flex-shrink: 0;
- }
-
- .nav-icon-picker-row select {
- flex: 1;
- }
-
- .nav-item-icon {
- display: inline-flex;
- width: 15px;
- height: 15px;
- vertical-align: middle;
- }
-
- .shop-icon-picker {
- display: flex;
- flex-wrap: wrap;
- gap: 10px;
- margin-bottom: 4px;
- }
-
- .shop-icon-option {
- display: flex;
- align-items: center;
- justify-content: center;
- width: 44px;
- height: 44px;
- margin: 0;
- border-radius: 10px;
- border: 1.5px solid var(--border);
- background: var(--panel-alt);
- color: var(--muted);
- cursor: pointer;
- transition: border-color .12s, color .12s, background .12s;
- }
-
- .shop-icon-option input {
- position: absolute;
- opacity: 0;
- width: 1px;
- height: 1px;
- }
-
- .shop-icon-option:hover {
- border-color: var(--border-strong);
- color: var(--text);
- }
-
- .shop-icon-option:has(input:checked) {
- border-color: var(--accent);
- background: var(--accent-dim);
- color: var(--accent);
- }
-
- .shop-icon-option .icon {
- width: 22px;
- height: 22px;
- }
-
- .shop-icon-custom-wrap {
- display: none;
- margin-top: 8px;
- }
-
- .shop-icon-picker:has(input[value="custom"]:checked) + .shop-icon-custom-wrap {
- display: block;
- }
-
- .nav-item-icon svg {
- width: 100%;
- height: 100%;
- display: block;
- }
-
- .dash-shell {
- display: flex;
- min-height: 100vh;
- gap: 14px;
- padding: 14px;
- box-sizing: border-box;
- }
-
- .dash-sidebar {
- width: 250px;
- background: var(--panel);
- border: 1px solid var(--border);
- border-radius: var(--radius);
- padding: 18px 14px;
- display: flex;
- flex-direction: column;
- position: sticky;
- top: 14px;
- height: calc(100vh - 28px);
- flex-shrink: 0;
- box-shadow: var(--shadow-card), var(--inset-hairline);
- }
-
- .dash-brand-row {
- display: flex;
- align-items: center;
- justify-content: space-between;
- padding: 6px 8px 18px;
- margin-bottom: 10px;
- border-bottom: 1px solid var(--border);
- }
-
- .dash-brand {
- font-weight: 700;
- font-size: 15px;
- letter-spacing: -0.01em;
- display: flex;
- align-items: center;
- gap: 8px;
- }
-
- .dash-brand-dot {
- width: 8px;
- height: 8px;
- border-radius: 50%;
- background: var(--accent);
- flex-shrink: 0;
- display: none;
- }
-
- .dash-theme-toggle {
- background: var(--panel-alt);
- border: 1px solid var(--border);
- border-radius: 999px;
- width: 30px;
- height: 30px;
- display: flex;
- align-items: center;
- justify-content: center;
- cursor: pointer;
- color: var(--muted);
- transition: background .12s, color .12s;
- }
-
- .dash-theme-toggle:hover {
- background: var(--panel-hover);
- color: var(--text);
- }
-
- body[data-theme="light"] .dash-theme-toggle .icon-moon {
- display: none;
- }
-
- body[data-theme="dark"] .dash-theme-toggle .icon-sun {
- display: none;
- }
-
- .dash-nav {
- display: flex;
- flex-direction: column;
- gap: 2px;
- flex: 1;
- }
-
- .dash-nav a {
- color: var(--muted);
- text-decoration: none;
- padding: 9px 12px;
- border-radius: var(--radius-sm);
- font-size: 13.5px;
- font-weight: 500;
- display: flex;
- align-items: center;
- gap: 10px;
- transition: background .15s ease, color .15s ease;
- }
-
- .dash-nav a:hover {
- background: var(--panel-alt);
- color: var(--text);
- }
-
- .dash-nav a.active {
- background: var(--accent-dim);
- color: var(--accent);
- font-weight: 600;
- box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--accent) 18%, transparent);
- }
-
- .dash-nav a.active .icon {
- color: var(--accent);
- }
-
- .dash-nav-divider {
- height: 1px;
- background: var(--border);
- margin: 10px 4px;
- }
-
- .dash-user {
- border-top: 1px solid var(--border);
- padding-top: 14px;
- margin-top: 10px;
- display: flex;
- align-items: center;
- gap: 10px;
- }
-
- .dash-user-avatar {
- width: 34px;
- height: 34px;
- border-radius: 50%;
- background: var(--accent-dim);
- color: var(--accent);
- display: flex;
- align-items: center;
- justify-content: center;
- font-weight: 700;
- font-size: 13px;
- flex-shrink: 0;
- font-family: "Avatar Font";
- }
-
- .dash-user-info {
- flex: 1;
- min-width: 0;
- }
-
- .dash-user-name {
- font-weight: 600;
- font-size: 13px;
- white-space: nowrap;
- overflow: hidden;
- text-overflow: ellipsis;
- }
-
- .dash-user-role {
- color: var(--muted-dim);
- font-size: 11.5px;
- }
-
- .dash-user-logout {
- color: var(--muted);
- display: flex;
- align-items: center;
- justify-content: center;
- width: 30px;
- height: 30px;
- border-radius: var(--radius-sm);
- flex-shrink: 0;
- transition: background .12s, color .12s;
- }
-
- .dash-user-logout:hover {
- background: var(--danger-dim);
- color: var(--danger);
- }
-
- .dash-main {
- flex: 1;
- padding: 30px 40px;
- max-width: 1240px;
- min-width: 0;
- margin: 0 auto;
- background: var(--panel);
- border: 1px solid var(--border);
- border-radius: var(--radius);
- box-shadow: var(--shadow-card), var(--inset-hairline);
- }
-
- .dash-title {
- display: flex;
- align-items: center;
- gap: 10px;
- font-size: 21px;
- font-weight: 700;
- margin: 0 0 6px;
- letter-spacing: -0.01em;
- }
-
- .dash-subtitle {
- display: flex;
- align-items: center;
- gap: 8px;
- font-size: 15px;
- font-weight: 600;
- margin: 30px 0 14px;
- color: var(--text);
- }
-
- .dash-header-row {
- display: flex;
- justify-content: space-between;
- align-items: center;
- margin-bottom: 22px;
- gap: 16px;
- }
-
- .dash-cards {
- display: flex;
- gap: 14px;
- margin-bottom: 28px;
- flex-wrap: wrap;
- }
-
- .dash-card {
- background: var(--panel);
- border: 1px solid var(--border);
- border-radius: var(--radius);
- padding: 18px 20px;
- min-width: 160px;
- flex: 1;
- box-shadow: var(--shadow-card), var(--inset-hairline);
- transition: border-color .16s, box-shadow .16s, transform .16s;
- }
-
- .dash-card:hover {
- border-color: var(--border-strong);
- transform: translateY(-1px);
- }
-
- .dash-card .icon {
- color: var(--accent);
- margin-bottom: 10px;
- }
-
- .dash-card-value {
- font-size: 26px;
- font-weight: 700;
- letter-spacing: -0.02em;
- }
-
- .dash-card-label {
- color: var(--muted);
- font-size: 12.5px;
- margin-top: 4px;
- }
-
- .dash-table {
- width: 100%;
- border-collapse: separate;
- border-spacing: 0;
- background: var(--panel);
- border: 1px solid var(--border);
- border-radius: var(--radius);
- overflow: hidden;
- box-shadow: var(--shadow-card);
- margin: 0 0 16px;
- }
-
- .dash-table th,
- .dash-table td {
- padding: 12px 16px;
- text-align: left;
- font-size: 13px;
- border-bottom: 1px solid var(--border);
- }
-
- .dash-table tr:last-child td {
- border-bottom: none;
- }
-
- .dash-table th {
- color: var(--muted);
- font-weight: 600;
- background: var(--panel-alt);
- font-size: 11.5px;
- text-transform: uppercase;
- letter-spacing: 0.04em;
- }
-
- .dash-table th:has(.icon) {
- display: table-cell;
- }
-
- .dash-table th .icon {
- vertical-align: -3px;
- margin-right: 6px;
- }
-
- .dash-table tbody tr {
- transition: background .1s;
- }
-
- .dash-table tbody tr:hover {
- background: var(--panel-alt);
- }
-
- .dash-table a {
- color: var(--text);
- text-decoration: none;
- font-weight: 500;
- }
-
- .dash-table a:hover {
- color: var(--accent);
- }
-
- .dash-table-actions {
- display: flex;
- gap: 6px;
- align-items: center;
- }
-
- .status-pill {
- padding: 3px 10px;
- border-radius: 999px;
- font-size: 11px;
- font-weight: 600;
- text-transform: capitalize;
- display: inline-block;
- }
-
- .status-draft {
- background: var(--panel-alt);
- color: var(--muted);
- }
-
- .status-pending_review {
- background: var(--warning-dim);
- color: var(--warning);
- }
-
- .status-scheduled {
- background: var(--info-dim);
- color: var(--info);
- }
-
- .status-published {
- background: var(--success-dim);
- color: var(--success);
- }
-
- .status-rejected {
- background: var(--danger-dim);
- color: var(--danger);
- }
-
- .status-archived {
- background: var(--panel-alt);
- color: var(--muted-dim);
- }
-
- .status-pending {
- background: var(--warning-dim);
- color: var(--warning);
- }
-
- .status-paid,
- .status-processing {
- background: var(--info-dim);
- color: var(--info);
- }
-
- .status-fulfilled,
- .status-shipped,
- .status-completed {
- background: var(--success-dim);
- color: var(--success);
- }
-
- .status-canceled,
- .status-refunded,
- .status-failed {
- background: var(--danger-dim);
- color: var(--danger);
- }
-
- .dash-btn,
- .dash-btn-small {
- display: inline-flex;
- align-items: center;
- justify-content: center;
- gap: 6px;
- border: 1px solid var(--border);
- background: var(--panel-alt);
- color: var(--text);
- padding: 9px 16px;
- border-radius: var(--radius-sm);
- font-size: 13px;
- font-weight: 600;
- cursor: pointer;
- text-decoration: none;
- font-family: inherit;
- transition: background .12s, border-color .12s;
- }
-
- .dash-btn:hover,
- .dash-btn-small:hover {
- background: var(--panel-hover);
- border-color: var(--border-strong);
- }
-
- .dash-btn-small {
- padding: 6px 11px;
- font-size: 12px;
- }
-
- .dash-btn-primary {
- background: linear-gradient(155deg, var(--accent-hover), var(--accent));
- border-color: var(--accent);
- color: #fff;
- box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), var(--inset-hairline);
- transition: background .12s, border-color .12s, box-shadow .16s, transform .16s;
- }
-
- .dash-btn-primary:hover {
- background: linear-gradient(155deg, var(--accent-hover), var(--accent-hover));
- border-color: var(--accent-hover);
- box-shadow: 0 4px 14px color-mix(in srgb, var(--accent) 40%, transparent), var(--inset-hairline);
- transform: translateY(-1px);
- }
-
- .dash-btn-success {
- background: var(--success);
- border-color: var(--success);
- color: #06231a;
- }
-
- .dash-btn-danger {
- background: transparent;
- border-color: var(--danger);
- color: var(--danger);
- }
-
- .dash-btn-danger:hover {
- background: var(--danger-dim);
- }
-
- .dash-flash {
- display: flex;
- align-items: center;
- gap: 8px;
- padding: 11px 16px;
- border-radius: var(--radius-sm);
- font-size: 13px;
- font-weight: 500;
- margin-bottom: 20px;
- }
-
- .dash-flash-success {
- background: var(--success-dim);
- color: var(--success);
- }
-
- .dash-flash-error {
- background: var(--danger-dim);
- color: var(--danger);
- }
-
- .article-form-grid {
- display: flex;
- gap: 24px;
- }
-
- .article-form-main {
- flex: 1;
- min-width: 0;
- }
-
- .article-form-sidebar {
- width: 300px;
- display: flex;
- flex-direction: column;
- gap: 20px;
- flex-shrink: 0;
- }
-
- .sidebar-box {
- background: var(--panel);
- border: 1px solid var(--border);
- border-radius: var(--radius);
- padding: 18px 20px;
- box-shadow: var(--shadow-card), var(--inset-hairline);
- }
-
- .sidebar-box label:first-child {
- margin-top: 0;
- }
-
- .article-form-main > label:first-child {
- margin-top: 0;
- }
-
- .dash-header-row + .article-form,
- .dash-header-row + form {
- margin-top: 4px;
- }
-
- label {
- display: block;
- font-size: 12.5px;
- font-weight: 600;
- color: var(--muted);
- margin: 14px 0 6px;
- }
-
- label:has(.icon) {
- display: flex;
- align-items: center;
- gap: 6px;
- }
-
- label:first-child {
- margin-top: 0;
- }
-
- input[type="text"],
- input[type="number"],
- input[type="datetime-local"],
- input[type="password"],
- input[type="email"],
- select,
- textarea {
- width: 100%;
- padding: 10px 12px;
- border-radius: var(--radius-sm);
- border: 1px solid var(--border);
- background: var(--bg);
- color: var(--text);
- font-size: 13.5px;
- font-family: inherit;
- transition: border-color .12s, box-shadow .12s;
- }
-
- input:focus,
- select:focus,
- textarea:focus {
- outline: none;
- border-color: var(--accent);
- box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 22%, transparent);
- }
-
- input[type="datetime-local"]::-webkit-calendar-picker-indicator {
- cursor: pointer;
- border-radius: 4px;
- padding: 2px;
- filter: invert(1);
- opacity: .7;
- }
-
- input[type="datetime-local"]::-webkit-calendar-picker-indicator:hover {
- opacity: 1;
- }
-
- body[data-theme="light"] input[type="datetime-local"]::-webkit-calendar-picker-indicator {
- filter: none;
- }
-
- input[type="color"] {
- width: 100%;
- height: 42px;
- padding: 4px;
- border-radius: var(--radius-sm);
- border: 1px solid var(--border);
- background: var(--bg);
- cursor: pointer;
- transition: border-color .12s, box-shadow .12s;
- }
-
- input[type="color"]::-webkit-color-swatch-wrapper {
- padding: 0;
- }
-
- input[type="color"]::-webkit-color-swatch {
- border: none;
- border-radius: 6px;
- }
-
- input[type="color"]::-moz-color-swatch {
- border: none;
- border-radius: 6px;
- }
-
- input[type="color"]:focus {
- outline: none;
- border-color: var(--accent);
- box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 22%, transparent);
- }
-
- .dash-main input[type="checkbox"]:not(.be-block input[type="checkbox"]) {
- appearance: none;
- -webkit-appearance: none;
- width: 38px;
- height: 22px;
- border-radius: 999px;
- background: var(--panel-alt);
- border: 1px solid var(--border);
- position: relative;
- flex-shrink: 0;
- cursor: pointer;
- transition: background .15s, border-color .15s;
- vertical-align: middle;
- margin: 0;
- }
-
- .dash-main input[type="checkbox"]:not(.be-block input[type="checkbox"])::before {
- content: "";
- position: absolute;
- top: 2px;
- left: 2px;
- width: 16px;
- height: 16px;
- border-radius: 50%;
- background: var(--muted);
- transition: transform .15s, background .15s;
- }
-
- .dash-main input[type="checkbox"]:not(.be-block input[type="checkbox"]):checked {
- background: var(--accent);
- border-color: var(--accent);
- }
-
- .dash-main input[type="checkbox"]:not(.be-block input[type="checkbox"]):checked::before {
- transform: translateX(16px);
- background: #fff;
- }
-
- .dash-main input[type="checkbox"]:not(.be-block input[type="checkbox"]):focus-visible {
- outline: 2px solid var(--accent);
- outline-offset: 2px;
- }
-
- .dash-main input[type="checkbox"]:not(.be-block input[type="checkbox"]):disabled {
- opacity: .5;
- cursor: not-allowed;
- }
-
- .dash-main label:has(> input[type="checkbox"]) {
- display: flex;
- align-items: center;
- gap: 10px;
- cursor: pointer;
- }
-
- .dash-input-inline {
- width: auto;
- display: inline-block;
- margin-right: 8px;
- }
-
- .publish-actions {
- display: flex;
- flex-wrap: wrap;
- gap: 8px;
- margin-top: 16px;
- }
-
- .two-col {
- display: flex;
- gap: 28px;
- }
-
- .two-col>div {
- flex: 1;
- }
-
- #block-editor-root {
- border: 1px solid var(--border);
- border-radius: var(--radius);
- padding: 10px;
- background: var(--bg);
- max-width: 100%;
- }
-
- #block-editor-root:not(.be-hide-block-icons) {
- padding-left: 32px;
- }
-
- .be-stats-bar {
- display: flex;
- justify-content: space-between;
- align-items: center;
- gap: 10px;
- margin-top: 8px;
- padding: 0 2px;
- font-size: 11.5px;
- color: var(--muted-dim);
- }
-
- .be-focus-toggle-btn {
- background: var(--panel-alt);
- border: 1px solid var(--border);
- color: var(--text);
- padding: 5px 10px;
- border-radius: var(--radius-sm);
- font-size: 11.5px;
- font-weight: 600;
- cursor: pointer;
- font-family: inherit;
- transition: background .12s, border-color .12s;
- }
-
- .be-focus-toggle-btn:hover {
- background: var(--panel-hover);
- border-color: var(--border-strong);
- }
-
- .be-draft-banner {
- display: flex;
- align-items: center;
- gap: 10px;
- padding: 10px 14px;
- margin-bottom: 10px;
- background: var(--warning-dim);
- border: 1px solid var(--warning);
- border-radius: var(--radius-sm);
- font-size: 13px;
- color: var(--text);
- }
-
- .be-draft-banner span {
- flex: 1;
- }
-
- .be-draft-banner button {
- background: var(--panel-alt);
- border: 1px solid var(--border);
- color: var(--text);
- padding: 6px 12px;
- border-radius: var(--radius-sm);
- font-size: 12.5px;
- font-weight: 600;
- cursor: pointer;
- font-family: inherit;
- transition: background .12s;
- }
-
- .be-draft-banner button:hover {
- background: var(--panel-hover);
- }
-
- body.be-focus-mode .dash-sidebar,
- body.be-focus-mode .dash-header-row,
- body.be-focus-mode .article-form-sidebar {
- display: none;
- }
-
- body.be-focus-mode .article-form-grid {
- justify-content: center;
- }
-
- body.be-focus-mode .article-form-main {
- max-width: 820px;
- width: 100%;
- }
-
- body.be-focus-mode .article-form-main input[type="text"],
- body.be-focus-mode .article-form-main textarea {
- font-size: 15.5px;
- }
-
- body.be-focus-mode .be-editable {
- font-size: 16.5px;
- line-height: 1.8;
- }
-
- body.be-focus-mode .be-heading {
- font-size: 22px;
- }
-
- .be-block {
- position: relative;
- padding: 10px 8px;
- border-radius: var(--radius-sm);
- margin-bottom: 4px;
- transition: background .12s;
- max-width: 100%;
- }
-
- .be-block:hover {
- background: var(--panel-alt);
- }
-
- .be-block-icon-badge {
- position: absolute;
- top: 10px;
- left: -22px;
- width: 18px;
- height: 18px;
- display: flex;
- align-items: center;
- justify-content: center;
- color: var(--muted-dim);
- }
-
- .be-block-icon-badge svg {
- width: 15px;
- height: 15px;
- }
-
- .be-hide-block-icons .be-block-icon-badge {
- display: none;
- }
-
- .be-block-toolbar {
- display: flex;
- gap: 2px;
- align-items: center;
- opacity: 0;
- transition: opacity .12s;
- position: absolute;
- top: -30px;
- right: 4px;
- background: var(--panel);
- border: 1px solid var(--border);
- border-radius: var(--radius-sm);
- padding: 2px;
- z-index: 5;
- box-shadow: var(--shadow-sm), var(--inset-hairline);
- }
-
- .be-block:hover .be-block-toolbar,
- .be-block:focus-within .be-block-toolbar {
- opacity: 1;
- }
-
- .be-block-toolbar button {
- background: none;
- border: none;
- color: var(--muted);
- cursor: pointer;
- padding: 5px;
- border-radius: 5px;
- display: flex;
- align-items: center;
- justify-content: center;
- transition: background .12s, color .12s;
- }
-
- .be-block-toolbar button:hover {
- background: var(--panel-hover);
- color: var(--text);
- }
-
- .be-block-type {
- font-size: 10px;
- color: var(--muted-dim);
- padding: 0 6px;
- text-transform: uppercase;
- font-weight: 600;
- letter-spacing: 0.03em;
- }
-
- .be-inline-toolbar {
- position: absolute;
- display: flex;
- gap: 2px;
- align-items: center;
- background: var(--panel);
- border: 1px solid var(--border);
- border-radius: var(--radius-sm);
- padding: 4px;
- z-index: 200;
- box-shadow: var(--shadow-md), var(--inset-hairline);
- max-width: calc(100vw - 16px);
- }
-
- .be-inline-toolbar button {
- width: 26px;
- height: 26px;
- background: none;
- border: none;
- color: var(--text);
- cursor: pointer;
- border-radius: 5px;
- font-size: 13px;
- font-weight: 700;
- display: flex;
- align-items: center;
- justify-content: center;
- font-family: inherit;
- transition: background .12s, color .12s;
- flex-shrink: 0;
- }
-
- .be-inline-toolbar button:hover {
- background: var(--accent);
- color: #fff;
- }
-
- .be-inline-toolbar .be-clear-format-btn {
- font-size: 11px;
- margin-left: 2px;
- }
-
- .be-color-trigger {
- width: 26px;
- height: 26px;
- padding: 4px 0 6px;
- border: none;
- border-radius: 5px;
- background: none;
- color: var(--text);
- cursor: pointer;
- display: flex;
- flex-direction: column;
- align-items: center;
- justify-content: center;
- gap: 2px;
- transition: background .12s;
- }
-
- .be-color-trigger:hover {
- background: var(--panel-hover);
- }
-
- .be-color-trigger-letter {
- font-size: 13px;
- font-weight: 700;
- line-height: 1;
- }
-
- .be-color-trigger-bar {
- width: 16px;
- height: 3px;
- border-radius: 2px;
- flex-shrink: 0;
- }
-
- .be-color-popover {
- position: absolute;
- display: flex;
- flex-direction: column;
- gap: 10px;
- background: var(--panel);
- border: 1px solid var(--border);
- border-radius: var(--radius-sm);
- padding: 12px;
- z-index: 210;
- box-shadow: var(--shadow-md), var(--inset-hairline);
- width: 220px;
- max-width: calc(100vw - 16px);
- }
-
- .be-color-popover-row {
- display: flex;
- flex-direction: column;
- gap: 6px;
- }
-
- .be-color-popover-label {
- font-size: 10.5px;
- color: var(--muted-dim);
- text-transform: uppercase;
- font-weight: 600;
- letter-spacing: 0.03em;
- }
-
- .be-color-popover-swatches {
- display: flex;
- flex-wrap: wrap;
- gap: 6px;
- }
-
- .be-color-swatch {
- width: 22px;
- height: 22px;
- border-radius: 6px;
- border: 1px solid var(--border);
- cursor: pointer;
- padding: 0;
- flex-shrink: 0;
- transition: transform .1s, border-color .1s;
- }
-
- .be-color-swatch:hover {
- transform: scale(1.1);
- border-color: var(--border-strong);
- }
-
- .be-color-swatch-preview {
- cursor: default;
- width: 26px;
- height: 26px;
- }
-
- .be-color-swatch-preview:hover {
- transform: none;
- border-color: var(--border);
- }
-
- .be-color-popover-hex-row {
- display: flex;
- align-items: center;
- gap: 8px;
- }
-
- input.be-color-hex-input {
- flex: 1;
- width: auto;
- padding: 6px 8px;
- font-size: 12.5px;
- font-family: "SF Mono", Consolas, monospace;
- text-transform: uppercase;
- }
-
- .be-color-reset-btn {
- background: var(--panel-alt);
- border: 1px solid var(--border);
- color: var(--text);
- padding: 7px 10px;
- border-radius: var(--radius-sm);
- font-size: 12.5px;
- font-weight: 600;
- cursor: pointer;
- font-family: inherit;
- transition: background .12s, border-color .12s;
- }
-
- .be-color-reset-btn:hover {
- background: var(--panel-hover);
- border-color: var(--border-strong);
- }
-
- .be-color-swatch-custom {
- background: conic-gradient(from 90deg, red, yellow, lime, cyan, blue, magenta, red);
- }
-
- .be-color-custom-panel {
- display: none;
- flex-direction: column;
- gap: 10px;
- }
-
- .be-color-custom-panel.open {
- display: flex;
- }
-
- .be-color-sv-area {
- position: relative;
- width: 100%;
- height: 130px;
- border-radius: var(--radius-sm);
- border: 1px solid var(--border);
- cursor: crosshair;
- touch-action: none;
- }
-
- .be-color-sv-cursor {
- position: absolute;
- width: 14px;
- height: 14px;
- border-radius: 50%;
- border: 2px solid #fff;
- box-shadow: 0 0 0 1px rgba(0, 0, 0, .4), var(--shadow-sm);
- transform: translate(-50%, -50%);
- pointer-events: none;
- }
-
- .be-color-hue-slider {
- position: relative;
- width: 100%;
- height: 12px;
- border-radius: 999px;
- border: 1px solid var(--border);
- background: linear-gradient(to right, red, yellow, lime, cyan, blue, magenta, red);
- cursor: pointer;
- touch-action: none;
- }
-
- .be-color-hue-handle {
- position: absolute;
- top: 50%;
- width: 16px;
- height: 16px;
- border-radius: 50%;
- border: 2px solid #fff;
- box-shadow: 0 0 0 1px rgba(0, 0, 0, .4), var(--shadow-sm);
- transform: translate(-50%, -50%);
- pointer-events: none;
- background: var(--panel);
- }
-
- .be-editable a {
- color: var(--accent);
- }
-
- .be-editable code {
- background: var(--panel-alt);
- padding: 1px 5px;
- border-radius: 4px;
- font-family: "SF Mono", Consolas, monospace;
- font-size: 0.9em;
- }
-
- .be-editable {
- min-height: 1.4em;
- outline: none;
- font-size: 14.5px;
- line-height: 1.65;
- font-family: var(--dash-font-content, inherit);
- overflow-wrap: break-word;
- word-break: break-word;
- }
-
- .be-heading {
- font-size: 19px;
- font-weight: 700;
- }
-
- .be-block-menu {
- position: absolute;
- background: var(--panel);
- border: 1px solid var(--border);
- border-radius: var(--radius-sm);
- padding: 4px;
- display: flex;
- flex-direction: column;
- z-index: 100;
- box-shadow: var(--shadow-md), var(--inset-hairline);
- max-width: calc(100vw - 16px);
- max-height: 60vh;
- overflow-y: auto;
- }
-
- .be-block-menu button {
- background: none;
- border: none;
- color: var(--text);
- text-align: left;
- padding: 8px 12px;
- cursor: pointer;
- border-radius: 5px;
- font-size: 13px;
- font-family: inherit;
- transition: background .12s, color .12s;
- }
-
- .be-block-menu button:hover {
- background: var(--accent);
- color: #fff;
- }
-
- .be-block-body {
- display: flex;
- flex-direction: column;
- gap: 10px;
- }
-
- .be-preview-image,
- .be-preview-video {
- max-width: 100%;
- border-radius: var(--radius-sm);
- }
-
- .be-upload-wrapper {
- display: flex;
- align-items: center;
- gap: 10px;
- }
-
- .be-upload-wrapper button {
- background: var(--panel-alt);
- border: 1px solid var(--border);
- color: var(--text);
- padding: 6px 12px;
- border-radius: 6px;
- font-size: 12px;
- cursor: pointer;
- font-family: inherit;
- }
-
- .be-upload-status {
- font-size: 12px;
- color: var(--muted);
- }
-
- .be-code {
- width: 100%;
- min-height: 100px;
- font-family: "SF Mono", Consolas, monospace;
- font-size: 13px;
- background: var(--bg);
- }
-
- .be-list-row,
- .be-checklist-row {
- display: flex;
- gap: 8px;
- margin-bottom: 6px;
- align-items: center;
- }
-
- .be-table-scroll {
- max-width: 100%;
- overflow-x: auto;
- margin-top: 8px;
- border-radius: var(--radius-sm);
- }
-
- .be-table {
- width: 100%;
- border-collapse: collapse;
- }
-
- .be-table td {
- border: 1px solid var(--border);
- padding: 4px;
- }
-
- .be-table-controls {
- display: flex;
- gap: 8px;
- margin-top: 8px;
- }
-
- .settings-tabs {
- display: flex;
- gap: 4px;
- border-bottom: 1px solid var(--border);
- margin-bottom: 24px;
- }
-
- .settings-tabs a {
- display: inline-flex;
- align-items: center;
- gap: 7px;
- padding: 10px 16px;
- color: var(--muted);
- text-decoration: none;
- font-size: 13px;
- font-weight: 600;
- border-bottom: 2px solid transparent;
- }
-
- .settings-tabs a.active {
- color: var(--text);
- border-bottom-color: var(--accent);
- }
-
- .settings-section {
- max-width: 640px;
- }
-
- .settings-section + .settings-section {
- margin-top: 36px;
- padding-top: 32px;
- border-top: 1px solid var(--border);
- }
-
- .settings-grid {
- display: grid;
- grid-template-columns: repeat(2, minmax(0, 1fr));
- gap: 12px;
- }
-
- .settings-grid > div {
- min-width: 0;
- }
-
- .share-settings-platform {
- display: inline-flex !important;
- align-items: center;
- gap: 6px;
- }
-
- .share-settings-platform-icon {
- width: 16px;
- height: 16px;
- display: inline-flex;
- }
-
- .share-settings-platform-icon svg {
- width: 100%;
- height: 100%;
- fill: currentColor;
- }
-
- .lang-row {
- display: flex;
- gap: 12px;
- align-items: center;
- margin-bottom: 8px;
- }
-
- .lang-row-key {
- width: 220px;
- font-size: 12px;
- color: var(--muted);
- flex-shrink: 0;
- }
-
- .dash-mobile-topbar {
- display: none;
- }
-
- .dash-nav-more-btn {
- display: none;
- }
-
- .dash-nav-sheet-backdrop {
- display: none;
- }
-
- @media (max-width: 860px) {
- .dash-main {
- padding: 20px 16px 84px;
- max-width: 100%;
- flex: 1 0 auto;
- width: 100%;
- box-sizing: border-box;
- background: var(--panel);
- border: none;
- border-top: 1px solid var(--border);
- border-radius: 24px 24px 0 0;
- box-shadow: var(--inset-hairline);
- }
-
- .dash-header-row {
- flex-wrap: wrap;
- }
-
- .dash-header-row .dash-btn,
- .dash-header-row .dash-btn-primary {
- flex: 1;
- }
-
- .dash-title {
- font-size: 18px;
- }
-
- .dash-cards {
- flex-wrap: nowrap;
- overflow-x: auto;
- -webkit-overflow-scrolling: touch;
- scroll-snap-type: x mandatory;
- margin: 0 -16px 24px;
- padding: 0 16px 4px;
- }
-
- .dash-card {
- min-width: 150px;
- scroll-snap-align: start;
- }
-
- .dash-table,
- .dash-table thead,
- .dash-table tbody,
- .dash-table th,
- .dash-table td,
- .dash-table tr {
- display: block;
- }
-
- .dash-table thead {
- display: none;
- }
-
- .dash-table tbody tr {
- border-bottom: 1px solid var(--border);
- padding: 12px 14px;
- }
-
- .dash-table tbody tr:last-child {
- border-bottom: none;
- }
-
- .dash-table td {
- border-bottom: none;
- padding: 5px 0;
- display: flex;
- justify-content: space-between;
- align-items: center;
- gap: 10px;
- text-align: right;
- }
-
- .dash-table td::before {
- content: attr(data-label);
- color: var(--muted);
- font-size: 11.5px;
- font-weight: 600;
- text-transform: uppercase;
- letter-spacing: 0.03em;
- text-align: left;
- flex-shrink: 0;
- }
-
- .dash-table td:empty {
- display: none;
- }
-
- .dash-table-actions {
- justify-content: flex-end;
- flex-wrap: wrap;
- }
-
- .article-form-grid,
- .two-col {
- flex-direction: column;
- gap: 16px;
- }
-
- .article-form-sidebar {
- width: 100%;
- }
-
- .settings-tabs {
- overflow-x: auto;
- -webkit-overflow-scrolling: touch;
- flex-wrap: nowrap;
- white-space: nowrap;
- }
-
- .lang-row {
- flex-wrap: wrap;
- }
-
- .lang-row-key {
- width: 100%;
- }
-
- .dash-shell {
- flex-direction: column;
- gap: 0;
- padding: 0;
- }
-
- .dash-mobile-topbar {
- display: flex;
- align-items: center;
- justify-content: space-between;
- position: sticky;
- top: 0;
- z-index: 50;
- background: var(--bg);
- border-bottom: none;
- padding: 12px 16px;
- }
-
- .dash-mobile-topbar::after {
- content: '';
- position: absolute;
- left: 0;
- right: 0;
- top: 100%;
- height: 24px;
- pointer-events: none;
- background:
- radial-gradient(circle at 100% 100%, transparent 23.5px, var(--bg) 24.5px) left top / 24px 24px no-repeat,
- radial-gradient(circle at 0 100%, transparent 23.5px, var(--bg) 24.5px) right top / 24px 24px no-repeat;
- }
-
- .dash-mobile-topbar .dash-brand {
- font-size: 14px;
- }
-
- .dash-mobile-topbar-right {
- display: flex;
- align-items: center;
- gap: 8px;
- }
-
- .dash-mobile-topbar .dash-user-avatar {
- width: 28px;
- height: 28px;
- font-size: 11px;
- }
-
- .dash-sidebar {
- position: fixed;
- top: auto;
- bottom: 0;
- left: 0;
- right: 0;
- width: 100%;
- height: auto;
- flex-direction: row;
- align-items: center;
- padding: 6px 6px calc(6px + env(safe-area-inset-bottom));
- border: none;
- border-top: 1px solid var(--border-strong, var(--border));
- border-radius: 24px 24px 0 0;
- box-shadow: 0 -8px 24px rgba(0, 0, 0, 0.18);
- z-index: 60;
- }
-
- .dash-brand-row,
- .dash-user {
- display: none;
- }
-
- .dash-nav {
- flex-direction: row;
- align-items: center;
- justify-content: space-around;
- gap: 0;
- width: 100%;
- }
-
- .dash-nav-divider {
- display: none;
- }
-
- .dash-nav a {
- flex-direction: column;
- gap: 3px;
- padding: 6px 4px;
- font-size: 10px;
- font-weight: 600;
- border-radius: var(--radius-sm);
- flex: 1;
- text-align: center;
- }
-
- .dash-nav a .icon {
- width: 20px;
- height: 20px;
- }
-
- .dash-nav.has-overflow a.dash-nav-overflow-item {
- display: none;
- }
-
- .dash-nav-more-btn {
- display: flex;
- flex-direction: column;
- align-items: center;
- gap: 3px;
- padding: 6px 4px;
- background: none;
- border: none;
- color: var(--muted);
- font-size: 10px;
- font-weight: 600;
- font-family: inherit;
- cursor: pointer;
- flex: 1;
- border-radius: var(--radius-sm);
- }
-
- .dash-nav-more-btn .icon {
- width: 20px;
- height: 20px;
- }
-
- .dash-nav-more-btn.open {
- color: var(--accent);
- }
-
- .dash-nav-sheet-backdrop {
- display: none;
- position: fixed;
- inset: 0;
- background: rgba(0, 0, 0, 0.45);
- z-index: 70;
- }
-
- .dash-nav-sheet-backdrop.open {
- display: block;
- }
-
- .dash-nav-sheet {
- display: none;
- position: fixed;
- left: 0;
- right: 0;
- bottom: 0;
- background: var(--panel);
- border-top: 1px solid var(--border);
- border-radius: 16px 16px 0 0;
- padding: 8px 10px calc(14px + env(safe-area-inset-bottom));
- z-index: 71;
- box-shadow: var(--shadow-md);
- max-height: 70vh;
- overflow-y: auto;
- }
-
- .dash-nav-sheet.open {
- display: block;
- animation: dashSheetIn .18s ease-out;
- }
-
- @keyframes dashSheetIn {
- from {
- transform: translateY(12px);
- opacity: 0;
- }
-
- to {
- transform: translateY(0);
- opacity: 1;
- }
- }
-
- .dash-nav-sheet-handle {
- width: 36px;
- height: 4px;
- border-radius: 999px;
- background: var(--border-strong);
- margin: 6px auto 12px;
- }
-
- .dash-nav-sheet a {
- display: flex;
- align-items: center;
- gap: 12px;
- padding: 12px 10px;
- color: var(--text);
- text-decoration: none;
- font-size: 14px;
- font-weight: 500;
- border-radius: var(--radius-sm);
- }
-
- .dash-nav-sheet a:active {
- background: var(--panel-alt);
- }
-
- .dash-nav-sheet a.active {
- color: var(--accent);
- background: var(--accent-dim);
- }
- }
-
- @media (min-width: 861px) {
-
- .dash-nav-sheet,
- .dash-nav-sheet-backdrop {
- display: none !important;
- }
- }
-
- .updater-card {
- display: flex;
- align-items: center;
- justify-content: space-between;
- gap: 16px;
- flex-wrap: wrap;
- max-width: 640px;
- margin-bottom: 24px;
- }
-
- .updater-card-info {
- display: flex;
- align-items: center;
- gap: 12px;
- min-width: 0;
- }
-
- .updater-card-info .icon {
- color: var(--accent);
- }
-
- .updater-card-title {
- font-weight: 600;
- font-size: 14px;
- }
-
- .updater-card-version {
- color: var(--muted);
- font-size: 12.5px;
- }
-
- .updater-note {
- display: flex;
- align-items: center;
- gap: 8px;
- color: var(--muted);
- font-size: 12.5px;
- margin: 14px 0 0;
- }
-
- .contact-topic-list {
- display: grid;
- gap: 8px;
- margin: 0 0 10px;
- }
-
- .contact-topic-row {
- display: grid;
- grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr) auto;
- gap: 8px;
- align-items: center;
- }
-
- .contact-topic-row input {
- margin: 0;
- }
-
- @media (max-width: 640px) {
- .contact-topic-row {
- grid-template-columns: 1fr auto;
- }
-
- .contact-topic-row input[type="email"] {
- grid-column: 1 / 2;
- }
- }
-
- .be-block-menu-item-disabled,
- .be-block-menu-item:disabled {
- opacity: .45;
- cursor: not-allowed;
- }
-
- .be-contact-note {
- display: flex;
- align-items: flex-start;
- gap: 8px;
- padding: 10px 12px;
- border: 1px dashed var(--border-strong);
- border-radius: var(--radius-sm);
- background: var(--panel-alt);
- color: var(--muted);
- font-size: 12.5px;
- line-height: 1.5;
- }
-
- .be-contact-note .icon {
- flex-shrink: 0;
- margin-top: 2px;
- }
-
- .dash-dialog {
- max-width: 520px;
- width: calc(100% - 32px);
- padding: 24px;
- border: 1px solid var(--border);
- border-radius: var(--radius);
- background: var(--panel);
- color: var(--text);
- box-shadow: 0 24px 60px rgba(0, 0, 0, 0.35);
- }
-
- .dash-dialog::backdrop {
- background: rgba(0, 0, 0, 0.55);
- }
-
- .dash-dialog-title {
- display: flex;
- align-items: center;
- gap: 8px;
- margin: 0 0 12px;
- font-size: 17px;
- }
-
- .dash-dialog-text {
- margin: 0 0 10px;
- font-size: 13.5px;
- line-height: 1.55;
- }
-
- .dash-dialog-list {
- margin: 0 0 18px;
- padding-left: 18px;
- font-size: 13px;
- line-height: 1.55;
- color: var(--muted);
- }
-
- .dash-dialog-list li + li {
- margin-top: 6px;
- }
-
- .dash-dialog-actions {
- display: flex;
- flex-wrap: wrap;
- justify-content: flex-end;
- gap: 8px;
- }
-
- .files-toolbar {
- display: flex;
- flex-wrap: wrap;
- align-items: flex-end;
- gap: 12px;
- margin: 0 0 16px;
- }
-
- .files-toolbar label {
- margin: 0 0 6px;
- }
-
- .files-inline-form {
- display: flex;
- gap: 6px;
- align-items: center;
- }
-
- .files-inline-form input[type="text"],
- .files-inline-form select {
- min-width: 0;
- padding: 5px 8px;
- font-size: 12.5px;
- }
-
- .files-name-cell {
- min-width: 260px;
- }
-
- .files-name-cell .files-inline-form {
- flex-wrap: wrap;
- }
-
- .files-name-cell .files-inline-form input[type="text"] {
- flex: 1 1 160px;
- }
-
- .files-name-cell small {
- display: block;
- color: var(--muted);
- font-size: 11.5px;
- }
-
- .product-files-hint {
- font-size: 12px;
- color: var(--muted);
- margin: 0 0 10px;
- line-height: 1.5;
- }
-
- .product-files-hint:last-child {
- margin: 10px 0 0;
- }
-
- .product-files-list {
- list-style: none;
- margin: 0 0 12px;
- padding: 0;
- display: grid;
- gap: 8px;
- }
-
- .product-files-list li {
- display: flex;
- flex-direction: column;
- gap: 8px;
- padding: 8px 10px;
- border: 1px solid var(--border);
- border-radius: var(--radius-sm);
- background: var(--panel-alt);
- }
-
- .product-files-row {
- display: flex;
- align-items: center;
- justify-content: space-between;
- gap: 10px;
- }
-
- .product-files-list input[type="text"] {
- width: 100%;
- margin: 0;
- padding: 6px 9px;
- font-size: 12.5px;
- }
-
- .product-files-name {
- display: flex;
- flex-direction: column;
- min-width: 0;
- font-size: 13px;
- word-break: break-all;
- }
-
- .product-files-name small {
- color: var(--muted);
- font-size: 11.5px;
- }
-
- #product-files input[type="file"] {
- width: 100%;
- margin-bottom: 8px;
- font-size: 12.5px;
- }
-
- .updater-auto-warning {
- margin: 0 0 18px;
- padding: 16px 20px;
- border: 1px solid var(--danger);
- border-left-width: 4px;
- border-radius: var(--radius);
- background: var(--danger-dim);
- color: var(--text);
- font-size: 13.5px;
- line-height: 1.55;
- }
-
- .updater-auto-warning strong:first-child {
- display: flex;
- align-items: center;
- gap: 8px;
- color: var(--danger);
- font-size: 14.5px;
- }
-
- .updater-auto-warning ul {
- margin: 10px 0;
- padding-left: 20px;
- }
-
- .updater-auto-warning li + li {
- margin-top: 4px;
- }
-
- .updater-auto-warning p {
- margin: 0;
- color: var(--muted);
- }
-
- .updater-changelog {
- margin: 0;
- padding-left: 20px;
- font-size: 13.5px;
- line-height: 1.7;
- }
-
- .updater-file {
- border: 1px solid var(--border);
- border-radius: var(--radius-sm);
- background: var(--panel);
- margin-bottom: 8px;
- overflow: hidden;
- }
-
- .updater-file summary {
- display: flex;
- align-items: center;
- gap: 10px;
- padding: 10px 14px;
- cursor: pointer;
- font-size: 13px;
- list-style: none;
- }
-
- .updater-file summary::-webkit-details-marker {
- display: none;
- }
-
- .updater-file summary:hover {
- background: var(--panel-alt);
- }
-
- .updater-file-path {
- flex: 1;
- min-width: 0;
- font-family: "SF Mono", Consolas, monospace;
- overflow-wrap: anywhere;
- }
-
- .updater-file-stats {
- display: flex;
- gap: 8px;
- font-size: 12px;
- font-weight: 600;
- flex-shrink: 0;
- }
-
- .updater-stat-add {
- color: var(--success);
- }
-
- .updater-stat-del {
- color: var(--danger);
- }
-
- .updater-stat-move {
- color: var(--info);
- }
-
- .updater-file .updater-note {
- padding: 0 14px 12px;
- margin: 0;
- }
-
- .updater-diff {
- border-top: 1px solid var(--border);
- overflow-x: auto;
- font-family: "SF Mono", Consolas, monospace;
- font-size: 12px;
- line-height: 1.55;
- }
-
- .updater-line {
- display: flex;
- min-width: max-content;
- width: 100%;
- }
-
- .updater-ln {
- width: 44px;
- padding: 0 8px;
- text-align: right;
- color: var(--muted-dim);
- flex-shrink: 0;
- user-select: none;
- }
-
- .updater-marker {
- width: 20px;
- text-align: center;
- flex-shrink: 0;
- user-select: none;
- }
-
- .updater-code {
- white-space: pre;
- padding-right: 14px;
- }
-
- .updater-line-add {
- background: var(--success-dim);
- }
-
- .updater-line-add .updater-marker {
- color: var(--success);
- }
-
- .updater-line-del {
- background: var(--danger-dim);
- }
-
- .updater-line-del .updater-marker {
- color: var(--danger);
- }
-
- .updater-line-move {
- background: var(--info-dim);
- color: var(--muted);
- }
-
- .updater-line-move .updater-marker {
- color: var(--info);
- }
-
- .updater-gap {
- padding: 2px 14px;
- color: var(--muted-dim);
- background: var(--panel-alt);
- text-align: center;
- }
-
- .ai-fab {
- position: fixed;
- right: 24px;
- bottom: 24px;
- z-index: 90;
- display: inline-flex;
- align-items: center;
- gap: 8px;
- padding: 12px 18px;
- border: 1px solid var(--accent);
- border-radius: 999px;
- background: linear-gradient(155deg, var(--accent-hover), var(--accent));
- color: #fff;
- font: inherit;
- font-size: 13px;
- font-weight: 700;
- cursor: pointer;
- box-shadow: var(--shadow-md);
- transition: transform .16s, box-shadow .16s;
- }
-
- .ai-fab:hover {
- transform: translateY(-2px);
- }
-
- .ai-fab.is-hidden {
- display: none;
- }
-
- .ai-panel {
- position: fixed;
- right: 24px;
- bottom: 24px;
- z-index: 95;
- display: none;
- flex-direction: column;
- width: 400px;
- max-width: calc(100vw - 32px);
- height: min(640px, calc(100vh - 48px));
- background: var(--panel);
- border: 1px solid var(--border-strong);
- border-radius: var(--radius);
- box-shadow: var(--shadow-md), var(--inset-hairline);
- overflow: hidden;
- }
-
- .ai-panel.is-open {
- display: flex;
- }
-
- .ai-header {
- display: flex;
- align-items: center;
- justify-content: space-between;
- gap: 10px;
- padding: 12px 14px;
- border-bottom: 1px solid var(--border);
- background: var(--panel-alt);
- }
-
- .ai-header-title {
- display: flex;
- align-items: center;
- gap: 10px;
- min-width: 0;
- color: var(--accent);
- }
-
- .ai-title {
- font-size: 14px;
- font-weight: 700;
- color: var(--text);
- }
-
- .ai-subtitle {
- font-size: 11.5px;
- color: var(--muted);
- overflow: hidden;
- text-overflow: ellipsis;
- white-space: nowrap;
- }
-
- .ai-header-actions {
- display: flex;
- align-items: center;
- gap: 6px;
- flex-shrink: 0;
- }
-
- .ai-header-actions .dash-btn-small:disabled {
- opacity: .45;
- cursor: not-allowed;
- }
-
- .ai-icon-button {
- display: inline-flex;
- align-items: center;
- justify-content: center;
- width: 28px;
- height: 28px;
- border: none;
- border-radius: var(--radius-sm);
- background: none;
- color: var(--muted);
- cursor: pointer;
- }
-
- .ai-icon-button:hover {
- background: var(--panel-hover);
- color: var(--text);
- }
-
- .ai-messages {
- flex: 1;
- min-height: 0;
- overflow-y: auto;
- padding: 14px;
- display: flex;
- flex-direction: column;
- gap: 10px;
- }
-
- .ai-messages > * {
- flex-shrink: 0;
- }
-
- .ai-msg {
- max-width: 92%;
- padding: 9px 12px;
- border-radius: 12px;
- font-size: 13px;
- line-height: 1.5;
- white-space: pre-wrap;
- overflow-wrap: anywhere;
- }
-
- .ai-msg-user {
- align-self: flex-end;
- background: var(--accent);
- color: #fff;
- border-bottom-right-radius: 4px;
- }
-
- .ai-msg-assistant {
- align-self: flex-start;
- background: var(--panel-alt);
- border: 1px solid var(--border);
- border-bottom-left-radius: 4px;
- }
-
- .ai-msg-note {
- align-self: center;
- max-width: 100%;
- padding: 4px 8px;
- color: var(--muted);
- font-size: 12px;
- text-align: center;
- }
-
- .ai-msg-error {
- align-self: stretch;
- max-width: 100%;
- background: var(--danger-dim);
- color: var(--danger);
- }
-
- .ai-proposal {
- border: 1px solid var(--border-strong);
- border-radius: var(--radius-sm);
- background: var(--bg);
- overflow: hidden;
- }
-
- .ai-change {
- border-bottom: 1px solid var(--border);
- font-size: 12.5px;
- }
-
- .ai-change:last-child {
- border-bottom: none;
- }
-
- .ai-change summary {
- display: flex;
- flex-direction: column;
- gap: 2px;
- padding: 8px 12px;
- cursor: pointer;
- list-style: none;
- }
-
- .ai-change summary::-webkit-details-marker {
- display: none;
- }
-
- .ai-change summary:hover {
- background: var(--panel-alt);
- }
-
- .ai-change-title {
- font-weight: 600;
- }
-
- .ai-change-note {
- color: var(--muted);
- }
-
- .ai-diff-label {
- padding: 4px 12px 0;
- font-size: 10.5px;
- font-weight: 600;
- letter-spacing: 0.04em;
- text-transform: uppercase;
- color: var(--muted-dim);
- }
-
- .ai-diff {
- margin: 4px 12px 8px;
- padding: 8px 10px;
- border-radius: 6px;
- font: inherit;
- font-size: 12px;
- line-height: 1.5;
- white-space: pre-wrap;
- overflow-wrap: anywhere;
- max-height: 160px;
- overflow-y: auto;
- }
-
- .ai-diff-before {
- background: var(--danger-dim);
- }
-
- .ai-diff-after {
- background: var(--success-dim);
- }
-
- .ai-proposal-note {
- padding: 8px 12px;
- border-top: 1px solid var(--border);
- font-size: 12px;
- color: var(--warning);
- }
-
- .ai-proposal-actions {
- display: flex;
- flex-wrap: wrap;
- align-items: center;
- gap: 6px;
- padding: 10px 12px;
- border-bottom: 1px solid var(--border);
- background: var(--panel-alt);
- }
-
- .ai-proposal {
- flex-shrink: 0;
- }
-
- .ai-proposal-status {
- font-size: 12px;
- font-weight: 600;
- color: var(--muted);
- }
-
- .ai-quick {
- display: flex;
- flex-wrap: wrap;
- gap: 6px;
- padding: 8px 14px 0;
- }
-
- .ai-chip {
- padding: 5px 11px;
- border: 1px solid var(--border);
- border-radius: 999px;
- background: var(--panel-alt);
- color: var(--text);
- font: inherit;
- font-size: 12px;
- font-weight: 600;
- cursor: pointer;
- transition: background .12s, border-color .12s;
- }
-
- .ai-chip:hover {
- background: var(--panel-hover);
- border-color: var(--border-strong);
- }
-
- .ai-scope {
- display: flex;
- align-items: center;
- gap: 8px;
- padding: 8px 14px 0;
- }
-
- .ai-scope label {
- margin: 0;
- font-size: 12px;
- }
-
- .ai-scope select {
- width: auto;
- padding: 5px 8px;
- font-size: 12px;
- }
-
- .ai-composer {
- display: flex;
- align-items: flex-end;
- gap: 8px;
- padding: 10px 14px 14px;
- }
-
- .ai-composer textarea {
- flex: 1;
- resize: none;
- min-height: 42px;
- max-height: 120px;
- }
-
- .ai-send {
- padding: 10px 12px;
- }
-
- @media (max-width: 860px) {
- .ai-fab {
- right: 16px;
- bottom: 84px;
- }
-
- .ai-panel {
- right: 8px;
- left: 8px;
- bottom: 76px;
- width: auto;
- max-width: none;
- height: min(560px, calc(100vh - 96px));
- }
- }
-
- .dash-user-avatar.has-image {
- overflow: hidden;
- background: transparent;
- }
-
- .dash-user-avatar.has-image img {
- display: block;
- width: 100%;
- height: 100%;
- object-fit: cover;
- }
-
- .dash-avatar-inline {
- display: inline-flex;
- align-items: center;
- gap: 10px;
- }
-
- .dash-avatar-inline .dash-user-avatar {
- width: 28px;
- height: 28px;
- font-size: 11px;
- }
-
- .avatar-edit-preview {
- display: flex;
- align-items: center;
- gap: 12px;
- margin-bottom: 8px;
- }
-
- .avatar-edit-preview .dash-user-avatar {
- width: 56px;
- height: 56px;
- font-size: 20px;
- }
-
- .settings-tabs {
- overflow-x: auto;
- overflow-y: hidden;
- flex-wrap: nowrap;
- white-space: nowrap;
- -webkit-overflow-scrolling: touch;
- scrollbar-width: thin;
- scrollbar-color: var(--border-strong) transparent;
- }
-
- .settings-tabs::-webkit-scrollbar {
- height: 6px;
- }
-
- .settings-tabs::-webkit-scrollbar-thumb {
- background: var(--border-strong);
- border-radius: 3px;
- }
-
- .settings-tabs a {
- flex: 0 0 auto;
- }
-
- .dash-btn,
- .dash-btn-small {
- opacity: 1;
- line-height: 1.2;
- white-space: nowrap;
- -webkit-appearance: none;
- appearance: none;
- }
-
- .dash-btn:not(.dash-btn-primary):not(.dash-btn-danger):not(.dash-btn-success),
- .dash-btn-small:not(.dash-btn-primary):not(.dash-btn-danger):not(.dash-btn-success) {
- background: var(--panel-alt);
- color: var(--text);
- border-color: var(--border-strong);
- }
-
- .dash-btn:not(.dash-btn-primary):not(.dash-btn-danger):not(.dash-btn-success):hover,
- .dash-btn-small:not(.dash-btn-primary):not(.dash-btn-danger):not(.dash-btn-success):hover {
- background: var(--panel-hover);
- color: var(--text);
- }
-
- .dash-btn .icon,
- .dash-btn-small .icon {
- flex: 0 0 auto;
- color: currentColor;
- }
-
- .dash-btn:focus-visible,
- .dash-btn-small:focus-visible {
- outline: 2px solid var(--accent);
- outline-offset: 2px;
- }
-
- .dash-btn:disabled,
- .dash-btn-small:disabled {
- opacity: .5;
- cursor: not-allowed;
- }
-
- .dash-btn-success:hover,
- .dash-btn-small.dash-btn-success:hover {
- background: color-mix(in srgb, var(--success) 88%, #fff);
- border-color: var(--success);
- color: #06231a;
- }
-
- .dash-btn-danger:hover,
- .dash-btn-small.dash-btn-danger:hover {
- background: var(--danger-dim);
- border-color: var(--danger);
- color: var(--danger);
- }
-
- .dash-card {
- position: relative;
- background: linear-gradient(180deg, color-mix(in srgb, var(--panel) 92%, #fff) 0%, var(--panel) 100%);
- border: 1px solid var(--border);
- border-radius: 14px;
- padding: 20px 22px;
- box-shadow: var(--inset-hairline), 0 1px 2px rgba(0, 0, 0, 0.18), 0 12px 28px -12px rgba(0, 0, 0, 0.35);
- overflow: hidden;
- }
-
- .dash-card::after {
- content: "";
- position: absolute;
- inset: 0 0 auto 0;
- height: 1px;
- background: linear-gradient(90deg, transparent, color-mix(in srgb, var(--accent) 55%, transparent), transparent);
- opacity: 0;
- transition: opacity .2s;
- }
-
- .dash-card:hover {
- transform: none;
- border-color: var(--border-strong);
- }
-
- .dash-card:hover::after {
- opacity: 1;
- }
-
- .dash-card-value {
- font-size: 30px;
- font-weight: 600;
- letter-spacing: -0.03em;
- line-height: 1.1;
- font-variant-numeric: tabular-nums;
- }
-
- .dash-card-label {
- font-size: 12.5px;
- margin-top: 6px;
- }
-
- .dash-table {
- background: var(--panel);
- border: 1px solid var(--border);
- border-radius: 14px;
- box-shadow: var(--inset-hairline), 0 1px 2px rgba(0, 0, 0, 0.18), 0 12px 28px -14px rgba(0, 0, 0, 0.35);
- }
-
- .dash-table th {
- background: color-mix(in srgb, var(--panel-alt) 60%, var(--panel));
- color: var(--muted-dim);
- font-size: 11px;
- font-weight: 600;
- letter-spacing: .07em;
- padding: 13px 18px;
- border-bottom: 1px solid var(--border);
- }
-
- .dash-table th .icon {
- opacity: .7;
- }
-
- .dash-table td {
- padding: 15px 18px;
- border-bottom: 1px solid color-mix(in srgb, var(--border) 65%, transparent);
- font-variant-numeric: tabular-nums;
- }
-
- .dash-table tbody tr {
- transition: background .15s, box-shadow .15s;
- }
-
- .dash-table tbody tr:hover {
- background: color-mix(in srgb, var(--panel-alt) 65%, transparent);
- box-shadow: inset 2px 0 0 var(--accent);
- }
-
- .dash-table td:first-child,
- .dash-table td:first-child a {
- font-weight: 600;
- letter-spacing: -0.005em;
- }
-
- .dash-table td:not(:first-child):not(:last-child) {
- color: color-mix(in srgb, var(--text) 78%, var(--muted));
- }
-
- .status-pill {
- display: inline-flex;
- align-items: center;
- gap: 6px;
- padding: 3px 10px 3px 8px;
- border-radius: 999px;
- font-size: 11.5px;
- font-weight: 600;
- box-shadow: inset 0 0 0 1px color-mix(in srgb, currentColor 22%, transparent);
- }
-
- .status-pill::before {
- content: "";
- width: 6px;
- height: 6px;
- border-radius: 50%;
- background: currentColor;
- flex: 0 0 auto;
- }
-
- .dash-table-actions .dash-btn-small {
- border-color: transparent;
- background: transparent;
- color: var(--muted);
- box-shadow: none;
- }
-
- .dash-table-actions .dash-btn-small:not(.dash-btn-primary):not(.dash-btn-danger):not(.dash-btn-success) {
- background: transparent;
- border-color: transparent;
- color: var(--muted);
- }
-
- .dash-table tbody tr:hover .dash-table-actions .dash-btn-small:not(.dash-btn-primary):not(.dash-btn-danger):not(.dash-btn-success),
- .dash-table-actions .dash-btn-small:not(.dash-btn-primary):not(.dash-btn-danger):not(.dash-btn-success):hover {
- background: var(--panel-alt);
- border-color: var(--border-strong);
- color: var(--text);
- }
-
- .dash-table-actions .dash-btn-danger {
- background: transparent;
- border-color: transparent;
- color: var(--muted);
- }
-
- .dash-table tbody tr:hover .dash-table-actions .dash-btn-danger {
- color: var(--danger);
- border-color: color-mix(in srgb, var(--danger) 45%, transparent);
- }
-
- .dash-table-actions .dash-btn-danger:hover {
- background: var(--danger-dim);
- border-color: var(--danger);
- color: var(--danger);
- }
-
- @media (max-width: 860px) {
- .dash-table td {
- padding: 5px 0;
- }
-
- .dash-table tbody tr:hover {
- box-shadow: none;
- }
- }
-
- :root {
- --ease-out: cubic-bezier(.22, 1, .36, 1);
- --ease-soft: cubic-bezier(.4, 0, .2, 1);
- --dur-fast: .16s;
- --dur: .28s;
- }
-
- .dash-btn,
- .dash-btn-small,
- .dash-btn-primary,
- .dash-nav a,
- .dash-theme-toggle,
- .dash-user-logout,
- .settings-tabs a,
- .ai-chip,
- .ai-icon-button,
- .be-block,
- .be-block-toolbar button,
- .updater-file summary {
- transition:
- background-color var(--dur) var(--ease-soft),
- border-color var(--dur) var(--ease-soft),
- color var(--dur) var(--ease-soft),
- box-shadow var(--dur) var(--ease-soft),
- transform var(--dur) var(--ease-out),
- opacity var(--dur) var(--ease-soft);
- }
-
- .dash-btn:active,
- .dash-btn-small:active {
- transform: scale(.97);
- transition-duration: .08s;
- }
-
- .dash-btn-primary:hover {
- transform: translateY(-1px);
- }
-
- .dash-btn-primary:active {
- transform: translateY(0) scale(.98);
- }
-
- .dash-nav a:hover {
- transform: translateX(2px);
- }
-
- .dash-nav a.active:hover {
- transform: none;
- }
-
- .settings-tabs a {
- position: relative;
- border-bottom-color: transparent;
- }
-
- .settings-tabs a::after {
- content: "";
- position: absolute;
- left: 16px;
- right: 16px;
- bottom: -1px;
- height: 2px;
- border-radius: 2px;
- background: var(--accent);
- transform: scaleX(0);
- transform-origin: center;
- transition: transform var(--dur) var(--ease-out);
- }
-
- .settings-tabs a:hover {
- color: var(--text);
- }
-
- .settings-tabs a.active {
- border-bottom-color: transparent;
- }
-
- .settings-tabs a.active::after {
- transform: scaleX(1);
- }
-
- .dash-card {
- transition:
- border-color var(--dur) var(--ease-soft),
- box-shadow var(--dur) var(--ease-soft),
- transform var(--dur) var(--ease-out);
- }
-
- .dash-card:hover {
- transform: translateY(-2px);
- }
-
- .dash-table tbody tr {
- transition:
- background-color var(--dur) var(--ease-soft),
- box-shadow var(--dur) var(--ease-soft);
- }
-
- .dash-table a,
- .status-pill {
- transition: color var(--dur) var(--ease-soft), background-color var(--dur) var(--ease-soft);
- }
-
- .dash-main input:not([type="checkbox"]),
- .dash-main select,
- .dash-main textarea {
- transition:
- border-color var(--dur) var(--ease-soft),
- box-shadow var(--dur) var(--ease-soft),
- background-color var(--dur) var(--ease-soft);
- }
-
- .dash-main input[type="checkbox"]:not(.be-block input[type="checkbox"]) {
- transition: background-color var(--dur) var(--ease-soft), border-color var(--dur) var(--ease-soft);
- }
-
- .dash-main input[type="checkbox"]:not(.be-block input[type="checkbox"])::before {
- transition: transform var(--dur) var(--ease-out), background-color var(--dur) var(--ease-soft);
- }
-
- .ai-panel.is-open {
- animation: dashPop .32s var(--ease-out) backwards;
- transform-origin: bottom right;
- }
-
- .ai-fab {
- transition: transform var(--dur) var(--ease-out), box-shadow var(--dur) var(--ease-soft);
- }
-
- .ai-msg {
- animation: dashRise .3s var(--ease-out) backwards;
- }
-
- .dash-nav-sheet.open {
- animation: dashSheetUp .38s var(--ease-out) backwards;
- }
-
- .dash-nav-sheet-backdrop.open {
- animation: dashFade .3s var(--ease-soft) backwards;
- }
-
- .be-block-toolbar {
- transition: opacity var(--dur) var(--ease-soft), transform var(--dur) var(--ease-out);
- transform: translateY(4px);
- }
-
- .be-block:hover .be-block-toolbar,
- .be-block:focus-within .be-block-toolbar {
- transform: translateY(0);
- }
-
- .be-inline-toolbar,
- .be-color-popover,
- .be-block-menu {
- animation: dashPop .18s var(--ease-out) backwards;
- transform-origin: top left;
- }
-
- @keyframes dashRise {
- from { opacity: 0; transform: translateY(10px); }
- to { opacity: 1; transform: translateY(0); }
- }
-
- @keyframes dashPop {
- from { opacity: 0; transform: translateY(8px) scale(.97); }
- to { opacity: 1; transform: translateY(0) scale(1); }
- }
-
- @keyframes dashFade {
- from { opacity: 0; }
- to { opacity: 1; }
- }
-
- @keyframes dashSheetUp {
- from { opacity: 0; transform: translateY(24px); }
- to { opacity: 1; transform: translateY(0); }
- }
-
- @media (prefers-reduced-motion: reduce) {
- *,
- *::before,
- *::after {
- animation-duration: .01ms !important;
- animation-delay: 0s !important;
- animation-iteration-count: 1 !important;
- transition-duration: .01ms !important;
- scroll-behavior: auto !important;
- }
- }
-
- .dash-nav a,
- .dash-nav a:hover,
- .dash-nav a:active,
- .dash-nav a.active,
- .dash-nav-sheet a,
- .dash-nav-more-btn {
- transform: none;
- transition: none;
- }
-
- @media (max-width: 860px) {
- .dash-sidebar {
- left: 8px;
- right: 8px;
- bottom: calc(8px + env(safe-area-inset-bottom));
- width: auto;
- padding: 6px;
- border: 1px solid var(--border-strong);
- border-radius: 24px;
- box-shadow: 0 10px 30px rgba(0, 0, 0, 0.35), var(--inset-hairline);
- }
-
- .dash-nav a,
- .dash-nav-more-btn {
- border-radius: 18px;
- }
-
- .dash-main {
- padding-bottom: 104px;
- border-radius: 24px 24px 0 0;
- }
-
- .dash-nav-sheet {
- left: 8px;
- right: 8px;
- bottom: calc(8px + env(safe-area-inset-bottom));
- border: 1px solid var(--border-strong);
- border-radius: 24px;
- }
-
- .ai-fab {
- bottom: calc(92px + env(safe-area-inset-bottom));
- }
-
- .ai-panel {
- bottom: calc(92px + env(safe-area-inset-bottom));
- border-radius: 20px;
- }
- }
-
- input:not([type]),
- input[type="url"],
- input[type="search"],
- input[type="tel"],
- input[type="date"],
- input[type="time"],
- input[type="month"],
- input[type="week"] {
- width: 100%;
- padding: 10px 12px;
- border-radius: var(--radius-sm);
- border: 1px solid var(--border);
- background: var(--bg);
- color: var(--text);
- font-size: 13.5px;
- font-family: inherit;
- transition: border-color var(--dur) var(--ease-soft), box-shadow var(--dur) var(--ease-soft);
- }
-
- input[type="url"]::placeholder,
- input[type="search"]::placeholder,
- input[type="tel"]::placeholder,
- input:not([type])::placeholder,
- input[type="text"]::placeholder,
- input[type="email"]::placeholder,
- input[type="password"]::placeholder,
- input[type="number"]::placeholder,
- textarea::placeholder {
- color: var(--muted-dim);
- opacity: 1;
- }
-
- input[type="date"]::-webkit-calendar-picker-indicator,
- input[type="time"]::-webkit-calendar-picker-indicator {
- cursor: pointer;
- filter: invert(1);
- opacity: .7;
- }
-
- body[data-theme="light"] input[type="date"]::-webkit-calendar-picker-indicator,
- body[data-theme="light"] input[type="time"]::-webkit-calendar-picker-indicator {
- filter: none;
- }
-
- input[type="file"] {
- width: 100%;
- padding: 8px;
- border-radius: var(--radius-sm);
- border: 1px dashed var(--border-strong);
- background: var(--bg);
- color: var(--muted);
- font-size: 12.5px;
- font-family: inherit;
- cursor: pointer;
- }
-
- input[type="file"]::file-selector-button {
- margin-right: 12px;
- padding: 6px 12px;
- border-radius: 6px;
- border: 1px solid var(--border-strong);
- background: var(--panel-alt);
- color: var(--text);
- font-family: inherit;
- font-size: 12px;
- font-weight: 600;
- cursor: pointer;
- }
-
- input[type="file"]::file-selector-button:hover {
- background: var(--panel-hover);
- }
-
- @media (max-width: 860px) {
- .dash-mobile-topbar {
- padding-top: calc(12px + env(safe-area-inset-top));
- padding-left: calc(16px + env(safe-area-inset-left));
- padding-right: calc(16px + env(safe-area-inset-right));
- }
-
- .dash-main {
- padding-left: calc(16px + env(safe-area-inset-left));
- padding-right: calc(16px + env(safe-area-inset-right));
- overflow-x: clip;
- }
-
- .dash-cards {
- margin-left: calc(-16px - env(safe-area-inset-left));
- margin-right: calc(-16px - env(safe-area-inset-right));
- padding-left: calc(16px + env(safe-area-inset-left));
- padding-right: calc(16px + env(safe-area-inset-right));
- scroll-padding-left: calc(16px + env(safe-area-inset-left));
- scroll-padding-right: calc(16px + env(safe-area-inset-right));
- padding-top: 2px;
- padding-bottom: 6px;
- }
-
- .dash-card {
- flex: 0 0 auto;
- width: min(220px, 72vw);
- }
-
- .dash-sidebar {
- left: calc(8px + env(safe-area-inset-left));
- right: calc(8px + env(safe-area-inset-right));
- }
-
- .dash-nav-sheet {
- left: calc(8px + env(safe-area-inset-left));
- right: calc(8px + env(safe-area-inset-right));
- }
-
- .ai-fab {
- right: calc(16px + env(safe-area-inset-right));
- }
-
- .ai-panel {
- left: calc(8px + env(safe-area-inset-left));
- right: calc(8px + env(safe-area-inset-right));
- }
- }
-
- @media (max-width: 860px) {
- .dash-cards {
- padding-top: 12px;
- padding-bottom: 22px;
- margin-top: -12px;
- margin-bottom: 2px;
- }
-
- .dash-card,
- .dash-card:hover {
- transform: none;
- overflow: hidden;
- border-radius: 16px;
- }
-
- .dash-mobile-topbar::after {
- display: none;
- }
- }
-
- .dash-btn-primary,
- .ai-fab {
- background: linear-gradient(180deg, color-mix(in srgb, var(--accent) 22%, transparent), color-mix(in srgb, var(--accent) 11%, transparent));
- border-color: color-mix(in srgb, var(--accent) 34%, transparent);
- color: var(--accent-hover);
- box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--accent) 10%, transparent), var(--inset-hairline);
- -webkit-backdrop-filter: blur(6px);
- backdrop-filter: blur(6px);
- }
-
- body[data-theme="light"] .dash-btn-primary,
- body[data-theme="light"] .ai-fab {
- color: var(--accent);
- }
-
- .dash-btn-primary:hover,
- .ai-fab:hover {
- background: linear-gradient(180deg, color-mix(in srgb, var(--accent) 32%, transparent), color-mix(in srgb, var(--accent) 18%, transparent));
- border-color: color-mix(in srgb, var(--accent) 55%, transparent);
- color: var(--accent-hover);
- box-shadow: 0 6px 20px -6px color-mix(in srgb, var(--accent) 55%, transparent), inset 0 0 0 1px color-mix(in srgb, var(--accent) 14%, transparent), var(--inset-hairline);
- }
-
- body[data-theme="light"] .dash-btn-primary:hover,
- body[data-theme="light"] .ai-fab:hover {
- color: var(--accent);
- }
-
- .dash-btn-success,
- .dash-btn-small.dash-btn-success {
- background: linear-gradient(180deg, color-mix(in srgb, var(--success) 22%, transparent), color-mix(in srgb, var(--success) 10%, transparent));
- border-color: color-mix(in srgb, var(--success) 34%, transparent);
- color: var(--success);
- box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--success) 10%, transparent), var(--inset-hairline);
- }
-
- .dash-btn-success:hover,
- .dash-btn-small.dash-btn-success:hover {
- background: linear-gradient(180deg, color-mix(in srgb, var(--success) 32%, transparent), color-mix(in srgb, var(--success) 18%, transparent));
- border-color: color-mix(in srgb, var(--success) 55%, transparent);
- color: var(--success);
- }
-
- .dash-btn-danger,
- .dash-btn-small.dash-btn-danger {
- background: linear-gradient(180deg, color-mix(in srgb, var(--danger) 14%, transparent), color-mix(in srgb, var(--danger) 6%, transparent));
- border-color: color-mix(in srgb, var(--danger) 34%, transparent);
- color: var(--danger);
- box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--danger) 8%, transparent);
- }
-
- .dash-btn-danger:hover,
- .dash-btn-small.dash-btn-danger:hover {
- background: linear-gradient(180deg, color-mix(in srgb, var(--danger) 26%, transparent), color-mix(in srgb, var(--danger) 14%, transparent));
- border-color: color-mix(in srgb, var(--danger) 55%, transparent);
- color: var(--danger);
- }
-
- .dash-btn:not(.dash-btn-primary):not(.dash-btn-danger):not(.dash-btn-success),
- .dash-btn-small:not(.dash-btn-primary):not(.dash-btn-danger):not(.dash-btn-success) {
- background: linear-gradient(180deg, color-mix(in srgb, var(--panel-alt) 100%, #fff 3%), var(--panel-alt));
- box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--text) 3%, transparent), var(--inset-hairline);
- }
-
- .dash-btn:not(.dash-btn-primary):not(.dash-btn-danger):not(.dash-btn-success):hover,
- .dash-btn-small:not(.dash-btn-primary):not(.dash-btn-danger):not(.dash-btn-success):hover {
- border-color: color-mix(in srgb, var(--accent) 40%, var(--border-strong));
- }
-
- .ai-msg-user {
- background: linear-gradient(180deg, color-mix(in srgb, var(--accent) 26%, var(--panel)), color-mix(in srgb, var(--accent) 16%, var(--panel)));
- border: 1px solid color-mix(in srgb, var(--accent) 34%, transparent);
- color: var(--text);
- }
-
- .be-inline-toolbar button:hover {
- background: color-mix(in srgb, var(--accent) 22%, transparent);
- color: var(--accent-hover);
- }
-
- .be-block-menu {
- padding: 6px;
- gap: 2px;
- }
-
- .be-block-menu button {
- position: relative;
- overflow: hidden;
- border-radius: 9px;
- padding: 9px 12px 9px 14px;
- border: 1px solid transparent;
- transition:
- background-color var(--dur) var(--ease-soft),
- border-color var(--dur) var(--ease-soft),
- color var(--dur) var(--ease-soft),
- padding-left var(--dur) var(--ease-out);
- animation: dashMenuItem .34s var(--ease-out) backwards;
- }
-
- .be-block-menu button::before {
- content: "";
- position: absolute;
- left: 0;
- top: 22%;
- bottom: 22%;
- width: 3px;
- border-radius: 0 3px 3px 0;
- background: var(--accent);
- transform: scaleY(0);
- transition: transform var(--dur) var(--ease-out);
- }
-
- .be-block-menu button:hover,
- .be-block-menu button:focus-visible,
- .be-block-menu button.active,
- .be-block-menu button.is-active,
- .be-block-menu button[aria-selected="true"] {
- background: linear-gradient(90deg, color-mix(in srgb, var(--accent) 22%, transparent), color-mix(in srgb, var(--accent) 9%, transparent));
- border-color: color-mix(in srgb, var(--accent) 28%, transparent);
- color: var(--accent-hover);
- padding-left: 18px;
- outline: none;
- }
-
- body[data-theme="light"] .be-block-menu button:hover,
- body[data-theme="light"] .be-block-menu button.active {
- color: var(--accent);
- }
-
- .be-block-menu button:hover::before,
- .be-block-menu button:focus-visible::before,
- .be-block-menu button.active::before,
- .be-block-menu button.is-active::before,
- .be-block-menu button[aria-selected="true"]::before {
- transform: scaleY(1);
- }
-
- .be-block-menu button:nth-child(1) { animation-delay: .00s; }
- .be-block-menu button:nth-child(2) { animation-delay: .02s; }
- .be-block-menu button:nth-child(3) { animation-delay: .04s; }
- .be-block-menu button:nth-child(4) { animation-delay: .06s; }
- .be-block-menu button:nth-child(5) { animation-delay: .08s; }
- .be-block-menu button:nth-child(6) { animation-delay: .10s; }
- .be-block-menu button:nth-child(7) { animation-delay: .12s; }
- .be-block-menu button:nth-child(8) { animation-delay: .14s; }
- .be-block-menu button:nth-child(9) { animation-delay: .16s; }
- .be-block-menu button:nth-child(n+10) { animation-delay: .18s; }
-
- @keyframes dashMenuItem {
- from { opacity: 0; transform: translateX(-6px); }
- to { opacity: 1; transform: translateX(0); }
- }
-
- .dash-table tbody tr:hover {
- box-shadow: none;
- }
-
- .dash-card::after {
- display: none;
- }
-
- .be-block-menu button::before {
- display: none;
- }
-
- .be-block-menu button,
- .be-block-menu button:hover,
- .be-block-menu button:focus-visible {
- padding: 9px 12px;
- animation: none;
- }
-
- .settings-tabs a::after {
- display: none;
- }
-
- .settings-tabs a.active {
- border-bottom-color: var(--accent);
- }
-
- @media (max-width: 860px) {
- .dash-mobile-topbar::after {
- display: block;
- content: '';
- position: absolute;
- left: 0;
- right: 0;
- top: calc(100% - 1px);
- height: 24px;
- pointer-events: none;
- z-index: 1;
- background:
- radial-gradient(circle at 100% 100%, transparent 23.5px, var(--bg) 24.5px) left top / 24px 24px no-repeat,
- radial-gradient(circle at 0 100%, transparent 23.5px, var(--bg) 24.5px) right top / 24px 24px no-repeat;
- }
- }
-
- input[type="text"],
- input[type="number"],
- input[type="datetime-local"],
- input[type="password"],
- input[type="email"],
- input:not([type]),
- input[type="url"],
- input[type="search"],
- input[type="tel"],
- input[type="date"],
- input[type="time"],
- input[type="month"],
- input[type="week"],
- select,
- textarea {
- background: linear-gradient(180deg, color-mix(in srgb, var(--bg) 100%, #fff 2.5%), var(--bg));
- border-color: color-mix(in srgb, var(--border-strong) 80%, transparent);
- box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.18), inset 0 0 0 1px color-mix(in srgb, var(--text) 2.5%, transparent);
- }
-
- input[type="text"]:hover,
- input[type="number"]:hover,
- input[type="datetime-local"]:hover,
- input[type="password"]:hover,
- input[type="email"]:hover,
- input:not([type]):hover,
- input[type="url"]:hover,
- input[type="search"]:hover,
- input[type="tel"]:hover,
- input[type="date"]:hover,
- input[type="time"]:hover,
- select:hover,
- textarea:hover {
- border-color: color-mix(in srgb, var(--accent) 30%, var(--border-strong));
- }
-
- input[type="text"]:focus,
- input[type="number"]:focus,
- input[type="datetime-local"]:focus,
- input[type="password"]:focus,
- input[type="email"]:focus,
- input:not([type]):focus,
- input[type="url"]:focus,
- input[type="search"]:focus,
- input[type="tel"]:focus,
- input[type="date"]:focus,
- input[type="time"]:focus,
- select:focus,
- textarea:focus {
- background: linear-gradient(180deg, color-mix(in srgb, var(--accent) 7%, var(--bg)), color-mix(in srgb, var(--accent) 3%, var(--bg)));
- border-color: color-mix(in srgb, var(--accent) 55%, transparent);
- box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 16%, transparent), inset 0 0 0 1px color-mix(in srgb, var(--accent) 10%, transparent);
- }
-
- select {
- cursor: pointer;
- }
-
- .dash-main input[type="checkbox"]:not(.be-block input[type="checkbox"]) {
- background: linear-gradient(180deg, color-mix(in srgb, var(--panel-alt) 100%, #fff 3%), var(--panel-alt));
- border-color: color-mix(in srgb, var(--border-strong) 90%, transparent);
- box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.2), inset 0 0 0 1px color-mix(in srgb, var(--text) 3%, transparent);
- }
-
- .dash-main input[type="checkbox"]:not(.be-block input[type="checkbox"])::before {
- background: linear-gradient(180deg, color-mix(in srgb, var(--muted) 100%, #fff 12%), var(--muted));
- box-shadow: 0 1px 2px rgba(0, 0, 0, 0.35);
- }
-
- .dash-main input[type="checkbox"]:not(.be-block input[type="checkbox"]):hover {
- border-color: color-mix(in srgb, var(--accent) 35%, var(--border-strong));
- }
-
- .dash-main input[type="checkbox"]:not(.be-block input[type="checkbox"]):checked {
- background: linear-gradient(180deg, color-mix(in srgb, var(--accent) 34%, transparent), color-mix(in srgb, var(--accent) 18%, transparent));
- border-color: color-mix(in srgb, var(--accent) 50%, transparent);
- box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--accent) 12%, transparent), 0 0 14px -4px color-mix(in srgb, var(--accent) 60%, transparent);
- }
-
- .dash-main input[type="checkbox"]:not(.be-block input[type="checkbox"]):checked::before {
- background: linear-gradient(180deg, #fff, color-mix(in srgb, var(--accent-hover) 30%, #fff));
- box-shadow: 0 1px 3px rgba(0, 0, 0, 0.35);
- }
-
- .dash-main input[type="checkbox"]:not(.be-block input[type="checkbox"]):focus-visible {
- outline: none;
- box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 22%, transparent);
- }
-
- body[data-theme="light"] input[type="text"],
- body[data-theme="light"] input[type="number"],
- body[data-theme="light"] input[type="password"],
- body[data-theme="light"] input[type="email"],
- body[data-theme="light"] input[type="url"],
- body[data-theme="light"] select,
- body[data-theme="light"] textarea {
- box-shadow: inset 0 1px 2px rgba(20, 20, 30, 0.06);
- }
-
- .dash-flash {
- animation: dashRise .4s var(--ease-out) backwards;
- }
-
- .dash-cards .dash-card {
- animation: dashRise .5s var(--ease-out) backwards;
- }
-
- .dash-cards .dash-card:nth-child(2) { animation-delay: .05s; }
- .dash-cards .dash-card:nth-child(3) { animation-delay: .1s; }
- .dash-cards .dash-card:nth-child(4) { animation-delay: .15s; }
-
- .dash-table tbody tr {
- animation: dashRise .45s var(--ease-out) backwards;
- }
-
- .dash-table tbody tr:nth-child(2) { animation-delay: .03s; }
- .dash-table tbody tr:nth-child(3) { animation-delay: .06s; }
- .dash-table tbody tr:nth-child(4) { animation-delay: .09s; }
- .dash-table tbody tr:nth-child(5) { animation-delay: .12s; }
- .dash-table tbody tr:nth-child(6) { animation-delay: .15s; }
- .dash-table tbody tr:nth-child(n+7) { animation-delay: .18s; }
-
- @media (max-width: 860px) {
- .dash-cards .dash-card {
- animation: dashFade .4s var(--ease-soft) backwards;
- }
- }
-
- .dash-main {
- animation: none !important;
- transform: none !important;
- }
-
- @media (max-width: 860px) {
- .dash-cards {
- display: grid;
- grid-template-columns: repeat(2, minmax(0, 1fr));
- gap: 12px;
- overflow: visible;
- scroll-snap-type: none;
- margin: 0 0 24px;
- padding: 0;
- }
-
- .dash-cards .dash-card {
- width: auto;
- min-width: 0;
- flex: none;
- padding: 16px 16px;
- scroll-snap-align: none;
- }
-
- .dash-card-value {
- font-size: 26px;
- }
-
- .dash-card-label {
- overflow-wrap: anywhere;
- }
- }
-
- body[data-theme="dark"] {
- color-scheme: dark;
- }
-
- body[data-theme="light"] {
- color-scheme: light;
- }
-
- select option,
- select optgroup {
- background: var(--panel);
- color: var(--text);
- }
-
- select option:checked,
- select option:hover {
- background: var(--accent);
- color: #fff;
- }
-
- .image-upload-row {
- display: flex;
- align-items: stretch;
- gap: 8px;
- }
-
- .image-upload-row > input[type="text"] {
- flex: 1 1 auto;
- min-width: 0;
- }
-
- .image-upload-button {
- flex: 0 0 auto;
- white-space: nowrap;
- }
-
- .image-upload-status {
- min-height: 0;
- margin-top: 6px;
- font-size: 12px;
- color: var(--muted);
- }
-
- .image-upload-status:empty {
- display: none;
- }
-
- @media (max-width: 480px) {
- .image-upload-row {
- flex-direction: column;
- }
- }
-
- [hidden] {
- display: none !important;
- }
-
- body.media-modal-open {
- overflow: hidden;
- }
-
- .media-modal-overlay {
- position: fixed;
- inset: 0;
- z-index: 300;
- display: flex;
- align-items: center;
- justify-content: center;
- padding: 24px;
- background: rgba(0, 0, 0, 0.6);
- -webkit-backdrop-filter: blur(4px);
- backdrop-filter: blur(4px);
- }
-
- .media-modal {
- display: flex;
- flex-direction: column;
- width: min(880px, 100%);
- height: min(640px, 100%);
- background: var(--panel);
- border: 1px solid var(--border-strong);
- border-radius: 16px;
- box-shadow: var(--shadow-md), var(--inset-hairline);
- overflow: hidden;
- }
-
- .media-modal-header {
- display: flex;
- align-items: center;
- justify-content: space-between;
- gap: 12px;
- padding: 10px 12px 10px 16px;
- border-bottom: 1px solid var(--border);
- background: var(--panel-alt);
- }
-
- .media-modal-tabs {
- display: flex;
- gap: 4px;
- padding: 4px;
- border-radius: 10px;
- background: var(--bg);
- border: 1px solid var(--border);
- }
-
- .media-modal-tab {
- padding: 7px 16px;
- border: 1px solid transparent;
- border-radius: 8px;
- background: transparent;
- color: var(--muted);
- font: inherit;
- font-size: 13px;
- font-weight: 600;
- cursor: pointer;
- transition: background-color .2s, color .2s, border-color .2s;
- }
-
- .media-modal-tab:hover {
- color: var(--text);
- }
-
- .media-modal-tab.is-active {
- background: linear-gradient(180deg, color-mix(in srgb, var(--accent) 22%, transparent), color-mix(in srgb, var(--accent) 11%, transparent));
- border-color: color-mix(in srgb, var(--accent) 34%, transparent);
- color: var(--accent);
- }
-
- .media-modal-close {
- width: 32px;
- height: 32px;
- border: none;
- border-radius: 8px;
- background: transparent;
- color: var(--muted);
- font-size: 22px;
- line-height: 1;
- cursor: pointer;
- transition: background-color .2s, color .2s;
- }
-
- .media-modal-close:hover {
- background: var(--panel-hover);
- color: var(--text);
- }
-
- .media-modal-body {
- flex: 1 1 auto;
- min-height: 0;
- overflow-y: auto;
- padding: 18px;
- }
-
- .media-modal-pane {
- min-height: 100%;
- }
-
- .media-drop {
- display: flex;
- flex-direction: column;
- align-items: center;
- justify-content: center;
- gap: 6px;
- min-height: 260px;
- margin: 0;
- padding: 24px;
- border: 1.5px dashed var(--border-strong);
- border-radius: 14px;
- background: var(--bg);
- text-align: center;
- cursor: pointer;
- transition: border-color .2s, background-color .2s;
- }
-
- .media-drop:hover,
- .media-drop.is-over {
- border-color: color-mix(in srgb, var(--accent) 60%, transparent);
- background: color-mix(in srgb, var(--accent) 6%, var(--bg));
- }
-
- .media-drop.is-busy {
- opacity: .6;
- pointer-events: none;
- }
-
- .media-drop-title {
- font-size: 15px;
- font-weight: 600;
- color: var(--text);
- }
-
- .media-drop-hint {
- font-size: 12.5px;
- font-weight: 500;
- color: var(--muted);
- }
-
- .media-status {
- margin-top: 12px;
- font-size: 12.5px;
- color: var(--muted);
- }
-
- .media-status:empty {
- display: none;
- }
-
- .media-grid {
- display: grid;
- grid-template-columns: repeat(auto-fill, minmax(130px, 1fr));
- gap: 10px;
- margin-top: 12px;
- }
-
- .media-tile {
- position: relative;
- padding: 0;
- aspect-ratio: 1;
- border: 1px solid var(--border);
- border-radius: 10px;
- background: var(--bg);
- overflow: hidden;
- cursor: pointer;
- transition: border-color .2s, transform .15s;
- }
-
- .media-tile:hover,
- .media-tile:focus-visible {
- border-color: color-mix(in srgb, var(--accent) 60%, transparent);
- outline: none;
- transform: translateY(-2px);
- }
-
- .media-tile img,
- .media-tile video {
- display: block;
- width: 100%;
- height: 100%;
- object-fit: cover;
- }
-
- @media (max-width: 600px) {
- .media-modal-overlay {
- padding: 0;
- align-items: flex-end;
- }
-
- .media-modal {
- width: 100%;
- height: 88vh;
- border-radius: 16px 16px 0 0;
- }
-
- .media-grid {
- grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));
- }
- }
-
- .be-add-row {
- margin-top: 8px;
- padding-left: 0;
- }
-
- .be-add-button {
- display: inline-flex;
- align-items: center;
- gap: 6px;
- }
-
- body.dash-no-glass {
- --inset-hairline: none;
- }
-
- body.dash-no-glass .dash-btn-primary,
- body.dash-no-glass .ai-fab {
- background: var(--accent);
- border-color: var(--accent);
- color: #fff;
- box-shadow: none;
- -webkit-backdrop-filter: none;
- backdrop-filter: none;
- }
-
- body.dash-no-glass .dash-btn-primary:hover,
- body.dash-no-glass .ai-fab:hover {
- background: var(--accent-hover);
- border-color: var(--accent-hover);
- color: #fff;
- box-shadow: none;
- }
-
- body.dash-no-glass[data-theme="light"] .dash-btn-primary,
- body.dash-no-glass[data-theme="light"] .ai-fab,
- body.dash-no-glass[data-theme="light"] .dash-btn-primary:hover,
- body.dash-no-glass[data-theme="light"] .ai-fab:hover {
- color: #fff;
- }
-
- body.dash-no-glass .dash-btn-success,
- body.dash-no-glass .dash-btn-small.dash-btn-success {
- background: var(--success);
- border-color: var(--success);
- color: #06231a;
- box-shadow: none;
- }
-
- body.dash-no-glass .dash-btn-success:hover,
- body.dash-no-glass .dash-btn-small.dash-btn-success:hover {
- background: color-mix(in srgb, var(--success) 88%, #fff);
- border-color: var(--success);
- color: #06231a;
- }
-
- body.dash-no-glass .dash-btn-danger,
- body.dash-no-glass .dash-btn-small.dash-btn-danger {
- background: transparent;
- border-color: var(--danger);
- color: var(--danger);
- box-shadow: none;
- }
-
- body.dash-no-glass .dash-btn-danger:hover,
- body.dash-no-glass .dash-btn-small.dash-btn-danger:hover {
- background: var(--danger-dim);
- border-color: var(--danger);
- color: var(--danger);
- }
-
- body.dash-no-glass .dash-btn:not(.dash-btn-primary):not(.dash-btn-danger):not(.dash-btn-success),
- body.dash-no-glass .dash-btn-small:not(.dash-btn-primary):not(.dash-btn-danger):not(.dash-btn-success) {
- background: var(--panel-alt);
- box-shadow: none;
- }
-
- body.dash-no-glass .dash-btn:not(.dash-btn-primary):not(.dash-btn-danger):not(.dash-btn-success):hover,
- body.dash-no-glass .dash-btn-small:not(.dash-btn-primary):not(.dash-btn-danger):not(.dash-btn-success):hover {
- background: var(--panel-hover);
- }
-
- body.dash-no-glass .dash-card {
- background: var(--panel);
- }
-
- body.dash-no-glass .ai-msg-user {
- background: var(--accent);
- border-color: var(--accent);
- color: #fff;
- }
-
- body.dash-no-glass .be-inline-toolbar button:hover {
- background: var(--accent);
- color: #fff;
- }
-
- body.dash-no-glass .be-block-menu button:hover,
- body.dash-no-glass .be-block-menu button:focus-visible,
- body.dash-no-glass .be-block-menu button.active,
- body.dash-no-glass .be-block-menu button.is-active,
- body.dash-no-glass .be-block-menu button[aria-selected="true"] {
- background: var(--accent-dim);
- border-color: transparent;
- }
-
- body.dash-no-glass .dash-main input[type="checkbox"]:not(.be-block input[type="checkbox"]):checked {
- background: var(--accent);
- border-color: var(--accent);
- box-shadow: none;
- }
-
- body.dash-no-glass .dash-main input[type="checkbox"]:not(.be-block input[type="checkbox"]):checked::before {
- background: #fff;
- }
-
- body.dash-no-glass .media-modal-tab.is-active {
- background: var(--accent-dim);
- border-color: transparent;
- }
-
- body.dash-no-glass .media-modal-overlay {
- -webkit-backdrop-filter: none;
- backdrop-filter: none;
- }
-
- body.dash-no-glass .dash-sidebar,
- body.dash-no-glass .dash-mobile-topbar,
- body.dash-no-glass .be-inline-toolbar,
- body.dash-no-glass .be-color-popover,
- body.dash-no-glass .be-block-menu,
- body.dash-no-glass .ai-panel,
- body.dash-no-glass .media-modal {
- -webkit-backdrop-filter: none;
- backdrop-filter: none;
- }
-
- body.dash-minimal {
- --shadow-sm: none;
- --shadow-card: none;
- }
-
- body.dash-minimal *,
- body.dash-minimal *::before,
- body.dash-minimal *::after {
- transition: none !important;
- animation: none !important;
- }
-
- body.dash-minimal .dash-card,
- body.dash-minimal .dash-table,
- body.dash-minimal .dash-sidebar,
- body.dash-minimal .dash-main,
- body.dash-minimal .sidebar-box {
- box-shadow: none;
- }
-
- body.dash-minimal input[type="text"],
- body.dash-minimal input[type="number"],
- body.dash-minimal input[type="datetime-local"],
- body.dash-minimal input[type="password"],
- body.dash-minimal input[type="email"],
- body.dash-minimal input:not([type]),
- body.dash-minimal input[type="url"],
- body.dash-minimal input[type="search"],
- body.dash-minimal input[type="tel"],
- body.dash-minimal input[type="date"],
- body.dash-minimal input[type="time"],
- body.dash-minimal select,
- body.dash-minimal textarea {
- background: var(--bg);
- }
-
- body.dash-minimal .dash-main input[type="checkbox"]:not(.be-block input[type="checkbox"]) {
- background: var(--panel-alt);
- box-shadow: none;
- }
-
- body.dash-minimal .dash-main input[type="checkbox"]:not(.be-block input[type="checkbox"])::before {
- background: var(--muted);
- box-shadow: none;
- }
-