Add Go rewrite with Postgres 17 and Dokploy Docker Compose
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -0,0 +1,619 @@
|
||||
/**
|
||||
* Amnezia Admin — Cyberpunk theme overrides
|
||||
*/
|
||||
|
||||
::-webkit-scrollbar { width: 6px; height: 6px; }
|
||||
::-webkit-scrollbar-track { background: #0b0d1a; }
|
||||
::-webkit-scrollbar-thumb { background: #252b55; border-radius: 3px; }
|
||||
::-webkit-scrollbar-thumb:hover { background: var(--admin-accent); }
|
||||
|
||||
/* Panels & cards */
|
||||
.admin-content .card,
|
||||
.dash-panel,
|
||||
.sl-panel {
|
||||
border-radius: var(--admin-radius);
|
||||
border-color: rgba(0, 240, 255, 0.12);
|
||||
background: linear-gradient(160deg, rgba(13, 16, 37, 0.95) 0%, rgba(17, 22, 51, 0.88) 100%);
|
||||
box-shadow: var(--admin-shadow);
|
||||
transition: border-color 0.2s, box-shadow 0.2s;
|
||||
}
|
||||
|
||||
.admin-content .card:hover,
|
||||
.dash-panel:hover,
|
||||
.sl-panel:hover {
|
||||
border-color: rgba(0, 240, 255, 0.22);
|
||||
}
|
||||
|
||||
.admin-content .card-header h2,
|
||||
.dash-panel-head h2,
|
||||
.sl-panel__head h2 {
|
||||
font-family: var(--admin-font-display);
|
||||
font-size: 0.88rem;
|
||||
font-weight: 700;
|
||||
letter-spacing: 0.08em;
|
||||
text-transform: uppercase;
|
||||
color: #e0e6ff;
|
||||
}
|
||||
|
||||
.dash-panel-head i,
|
||||
.sl-panel__head i,
|
||||
.admin-content .card-header > i {
|
||||
color: var(--admin-accent);
|
||||
filter: drop-shadow(0 0 6px var(--admin-accent-glow));
|
||||
}
|
||||
|
||||
/* Stats tiles */
|
||||
.dash-stat {
|
||||
border-radius: var(--admin-radius);
|
||||
border-color: rgba(0, 240, 255, 0.12);
|
||||
background: linear-gradient(160deg, rgba(13, 16, 37, 0.95) 0%, rgba(17, 22, 51, 0.85) 100%);
|
||||
}
|
||||
|
||||
.dash-stat:hover {
|
||||
border-color: rgba(0, 240, 255, 0.35);
|
||||
box-shadow: 0 12px 28px rgba(0, 0, 0, 0.35), 0 0 20px rgba(0, 240, 255, 0.08);
|
||||
}
|
||||
|
||||
.dash-stat-icon {
|
||||
border-radius: var(--admin-radius);
|
||||
}
|
||||
|
||||
.dash-stat-label {
|
||||
font-family: var(--admin-font-mono);
|
||||
letter-spacing: 0.1em;
|
||||
color: #555d80;
|
||||
}
|
||||
|
||||
/* Quick actions */
|
||||
.dash-action {
|
||||
border-radius: var(--admin-radius);
|
||||
border-color: rgba(0, 240, 255, 0.1);
|
||||
background: rgba(17, 22, 51, 0.6);
|
||||
}
|
||||
|
||||
.dash-action:hover {
|
||||
border-color: rgba(0, 240, 255, 0.35);
|
||||
background: rgba(0, 240, 255, 0.06);
|
||||
box-shadow: 0 0 20px rgba(0, 240, 255, 0.08);
|
||||
}
|
||||
|
||||
.dash-action--primary {
|
||||
border-color: rgba(0, 240, 255, 0.4);
|
||||
background: linear-gradient(135deg, rgba(0, 240, 255, 0.12) 0%, rgba(255, 45, 123, 0.06) 100%);
|
||||
}
|
||||
|
||||
.dash-action--primary:hover {
|
||||
border-color: rgba(0, 240, 255, 0.6);
|
||||
box-shadow: 0 0 28px rgba(0, 240, 255, 0.15);
|
||||
}
|
||||
|
||||
.dash-action-icon {
|
||||
border-radius: var(--admin-radius);
|
||||
background: rgba(0, 240, 255, 0.1);
|
||||
color: var(--admin-accent);
|
||||
border: 1px solid rgba(0, 240, 255, 0.2);
|
||||
}
|
||||
|
||||
.dash-action-text strong {
|
||||
font-family: var(--admin-font-display);
|
||||
font-size: 0.82rem;
|
||||
letter-spacing: 0.04em;
|
||||
text-transform: uppercase;
|
||||
color: #e0e6ff;
|
||||
}
|
||||
|
||||
/* Alerts */
|
||||
.dash-alert {
|
||||
border-radius: var(--admin-radius);
|
||||
border-color: rgba(255, 226, 61, 0.35);
|
||||
background: rgba(255, 226, 61, 0.06);
|
||||
color: #ffe23d;
|
||||
}
|
||||
|
||||
/* Code & mono */
|
||||
.admin-content code,
|
||||
.code-inline,
|
||||
.dash-info-user code,
|
||||
.sl-url-result__text,
|
||||
.sl-id,
|
||||
.sl-creation__cid,
|
||||
.mono {
|
||||
font-family: var(--admin-font-mono) !important;
|
||||
}
|
||||
|
||||
.code-inline,
|
||||
.admin-page-links .code-inline,
|
||||
.admin-page-settings .code-inline,
|
||||
.dash-info-user code {
|
||||
background: rgba(0, 240, 255, 0.08);
|
||||
color: var(--admin-accent);
|
||||
border: 1px solid rgba(0, 240, 255, 0.15);
|
||||
border-radius: 2px;
|
||||
}
|
||||
|
||||
/* Tables */
|
||||
.sl-table-wrap {
|
||||
border-radius: var(--admin-radius);
|
||||
border-color: rgba(0, 240, 255, 0.15);
|
||||
box-shadow: inset 0 0 0 1px rgba(0, 240, 255, 0.04);
|
||||
}
|
||||
|
||||
.sl-table thead th {
|
||||
background: rgba(13, 16, 37, 0.98);
|
||||
color: var(--admin-accent) !important;
|
||||
font-family: var(--admin-font-mono);
|
||||
letter-spacing: 0.1em;
|
||||
border-bottom-color: rgba(0, 240, 255, 0.2);
|
||||
}
|
||||
|
||||
.sl-table tbody td {
|
||||
color: #c8d0f0 !important;
|
||||
border-bottom-color: rgba(26, 31, 61, 0.8);
|
||||
}
|
||||
|
||||
.sl-table tbody tr:hover td {
|
||||
background: rgba(0, 240, 255, 0.04);
|
||||
}
|
||||
|
||||
.sl-id {
|
||||
color: var(--admin-accent-2);
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.sl-url-link {
|
||||
color: #8892b8;
|
||||
}
|
||||
|
||||
.sl-url-link:hover {
|
||||
color: var(--admin-accent);
|
||||
text-shadow: 0 0 8px var(--admin-accent-glow);
|
||||
}
|
||||
|
||||
/* Inputs */
|
||||
.sl-input,
|
||||
.admin-content .form-control,
|
||||
.admin-content .form-select,
|
||||
.admin-content input[type="text"],
|
||||
.admin-content input[type="number"],
|
||||
.admin-content input[type="date"],
|
||||
.admin-content input[type="datetime-local"],
|
||||
.admin-content input[type="search"],
|
||||
.admin-content textarea,
|
||||
.admin-content select {
|
||||
border-radius: var(--admin-radius);
|
||||
border-color: rgba(0, 240, 255, 0.18);
|
||||
background: rgba(5, 6, 15, 0.8);
|
||||
color: #e0e6ff;
|
||||
font-family: var(--admin-font-body);
|
||||
transition: border-color 0.15s, box-shadow 0.15s;
|
||||
}
|
||||
|
||||
.sl-input:focus,
|
||||
.admin-content .form-control:focus,
|
||||
.admin-content .form-select:focus,
|
||||
.admin-content input:focus,
|
||||
.admin-content textarea:focus,
|
||||
.admin-content select:focus {
|
||||
border-color: var(--admin-accent);
|
||||
box-shadow: 0 0 0 2px rgba(0, 240, 255, 0.15), 0 0 16px rgba(0, 240, 255, 0.1);
|
||||
background: rgba(5, 6, 15, 0.95);
|
||||
color: #e0e6ff;
|
||||
}
|
||||
|
||||
.sl-search__bar {
|
||||
border-radius: var(--admin-radius);
|
||||
border-color: rgba(0, 240, 255, 0.18);
|
||||
background: rgba(5, 6, 15, 0.7);
|
||||
}
|
||||
|
||||
.sl-search__bar:focus-within {
|
||||
border-color: rgba(0, 240, 255, 0.45);
|
||||
box-shadow: 0 0 20px rgba(0, 240, 255, 0.1);
|
||||
}
|
||||
|
||||
.sl-search__btn {
|
||||
background: rgba(0, 240, 255, 0.15);
|
||||
color: var(--admin-accent);
|
||||
border-radius: var(--admin-radius);
|
||||
font-family: var(--admin-font-mono);
|
||||
font-size: 0.78rem;
|
||||
letter-spacing: 0.06em;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
.sl-search__btn:hover {
|
||||
background: rgba(0, 240, 255, 0.25);
|
||||
box-shadow: 0 0 16px var(--admin-accent-glow);
|
||||
}
|
||||
|
||||
/* Buttons */
|
||||
.sl-btn-generate,
|
||||
.sl-btn-save-timing,
|
||||
.sl-btn-cleanup,
|
||||
.sl-btn-migrate,
|
||||
.admin-content .btn-primary {
|
||||
border-radius: var(--admin-radius);
|
||||
font-family: var(--admin-font-display);
|
||||
font-size: 0.78rem;
|
||||
font-weight: 700;
|
||||
letter-spacing: 0.08em;
|
||||
text-transform: uppercase;
|
||||
border: 1px solid rgba(0, 240, 255, 0.45);
|
||||
background: linear-gradient(135deg, rgba(0, 240, 255, 0.18) 0%, rgba(0, 240, 255, 0.06) 100%);
|
||||
color: var(--admin-accent);
|
||||
box-shadow: 0 0 16px rgba(0, 240, 255, 0.1);
|
||||
transition: box-shadow 0.15s, border-color 0.15s, transform 0.12s;
|
||||
}
|
||||
|
||||
.sl-btn-generate:hover,
|
||||
.sl-btn-save-timing:hover,
|
||||
.sl-btn-cleanup:hover:not(:disabled),
|
||||
.sl-btn-migrate:hover,
|
||||
.admin-content .btn-primary:hover {
|
||||
border-color: var(--admin-accent);
|
||||
background: linear-gradient(135deg, rgba(0, 240, 255, 0.28) 0%, rgba(255, 45, 123, 0.1) 100%);
|
||||
color: #fff;
|
||||
box-shadow: 0 0 24px var(--admin-accent-glow);
|
||||
transform: translateY(-1px);
|
||||
}
|
||||
|
||||
.sl-btn-copy,
|
||||
.admin-content .btn-outline-secondary {
|
||||
border-radius: var(--admin-radius);
|
||||
border-color: rgba(0, 240, 255, 0.25);
|
||||
color: #8892b8;
|
||||
font-family: var(--admin-font-mono);
|
||||
font-size: 0.78rem;
|
||||
}
|
||||
|
||||
.sl-btn-copy:hover,
|
||||
.admin-content .btn-outline-secondary:hover {
|
||||
border-color: var(--admin-accent);
|
||||
color: var(--admin-accent);
|
||||
background: rgba(0, 240, 255, 0.06);
|
||||
}
|
||||
|
||||
.sl-chip {
|
||||
border-radius: var(--admin-radius);
|
||||
border-color: rgba(0, 240, 255, 0.2);
|
||||
font-family: var(--admin-font-mono);
|
||||
font-size: 0.75rem;
|
||||
}
|
||||
|
||||
.sl-chip.active,
|
||||
.sl-chip:hover {
|
||||
border-color: var(--admin-accent);
|
||||
background: rgba(0, 240, 255, 0.12);
|
||||
color: var(--admin-accent);
|
||||
box-shadow: 0 0 12px rgba(0, 240, 255, 0.15);
|
||||
}
|
||||
|
||||
/* Config cards */
|
||||
.sl-creation {
|
||||
border-radius: var(--admin-radius);
|
||||
border-color: rgba(0, 240, 255, 0.12);
|
||||
background: rgba(5, 6, 15, 0.5);
|
||||
}
|
||||
|
||||
.sl-creation:hover {
|
||||
border-color: rgba(0, 240, 255, 0.25);
|
||||
}
|
||||
|
||||
.sl-creation--deleted {
|
||||
border-color: rgba(255, 56, 96, 0.2);
|
||||
opacity: 0.75;
|
||||
}
|
||||
|
||||
.sl-configs-details summary {
|
||||
font-family: var(--admin-font-mono);
|
||||
color: #8892b8;
|
||||
}
|
||||
|
||||
.sl-configs-details[open] summary {
|
||||
color: var(--admin-accent);
|
||||
}
|
||||
|
||||
/* Server sidebar (configs page) */
|
||||
.sl-sidebar {
|
||||
border-radius: var(--admin-radius);
|
||||
border-color: rgba(0, 240, 255, 0.15);
|
||||
background: rgba(13, 16, 37, 0.9);
|
||||
}
|
||||
|
||||
.sl-sidebar__item.is-active,
|
||||
.sl-sidebar__item:hover {
|
||||
border-color: rgba(0, 240, 255, 0.35);
|
||||
background: rgba(0, 240, 255, 0.08);
|
||||
box-shadow: inset 3px 0 0 var(--admin-accent);
|
||||
}
|
||||
|
||||
.sl-sidebar__item.is-active .sl-sidebar__name {
|
||||
color: var(--admin-accent);
|
||||
text-shadow: 0 0 8px var(--admin-accent-glow);
|
||||
}
|
||||
|
||||
/* Pagination */
|
||||
.sl-pager__btn {
|
||||
border-radius: var(--admin-radius);
|
||||
border-color: rgba(0, 240, 255, 0.18);
|
||||
background: rgba(5, 6, 15, 0.7);
|
||||
font-family: var(--admin-font-mono);
|
||||
}
|
||||
|
||||
.sl-pager__btn:hover:not(.is-disabled):not(.is-active) {
|
||||
border-color: var(--admin-accent);
|
||||
color: var(--admin-accent);
|
||||
box-shadow: 0 0 12px rgba(0, 240, 255, 0.12);
|
||||
}
|
||||
|
||||
.sl-pager__page.is-active {
|
||||
background: var(--admin-accent);
|
||||
color: #05060f;
|
||||
border-color: var(--admin-accent);
|
||||
box-shadow: 0 0 16px var(--admin-accent-glow);
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
/* Timing form modal */
|
||||
.sl-timing-form {
|
||||
border-radius: var(--admin-radius);
|
||||
border-color: rgba(0, 240, 255, 0.25);
|
||||
background: linear-gradient(160deg, #0d1025 0%, #111633 100%);
|
||||
box-shadow: 0 24px 64px rgba(0, 0, 0, 0.6), 0 0 1px rgba(0, 240, 255, 0.3);
|
||||
}
|
||||
|
||||
.sl-timing-form__head strong {
|
||||
font-family: var(--admin-font-display);
|
||||
letter-spacing: 0.06em;
|
||||
text-transform: uppercase;
|
||||
color: var(--admin-accent);
|
||||
}
|
||||
|
||||
.sl-timing-form__section {
|
||||
font-family: var(--admin-font-mono);
|
||||
color: var(--admin-accent-2);
|
||||
letter-spacing: 0.1em;
|
||||
}
|
||||
|
||||
.sl-form-module {
|
||||
border-color: rgba(0, 240, 255, 0.12);
|
||||
background: rgba(8, 12, 28, 0.5);
|
||||
}
|
||||
|
||||
.sl-form-module__head {
|
||||
font-family: var(--admin-font-mono);
|
||||
color: var(--admin-accent-2);
|
||||
letter-spacing: 0.1em;
|
||||
background: rgba(0, 240, 255, 0.04);
|
||||
border-bottom-color: rgba(0, 240, 255, 0.1);
|
||||
}
|
||||
|
||||
.sl-switch input:checked + .sl-switch__track {
|
||||
background: rgba(0, 240, 255, 0.85);
|
||||
border-color: var(--admin-accent);
|
||||
box-shadow: 0 0 14px var(--admin-accent-glow);
|
||||
}
|
||||
|
||||
.sl-switch-row--master {
|
||||
background: rgba(0, 240, 255, 0.05);
|
||||
border-color: rgba(0, 240, 255, 0.18);
|
||||
}
|
||||
|
||||
.sl-server-toolbar__btn {
|
||||
font-family: var(--admin-font-mono);
|
||||
letter-spacing: 0.04em;
|
||||
}
|
||||
|
||||
.sl-server-toolbar__count {
|
||||
font-family: var(--admin-font-mono);
|
||||
color: var(--admin-accent);
|
||||
border-color: rgba(0, 240, 255, 0.2);
|
||||
background: rgba(0, 240, 255, 0.06);
|
||||
}
|
||||
|
||||
.sl-server-pick:has(.js-server-pick:checked) {
|
||||
background: rgba(0, 240, 255, 0.07);
|
||||
}
|
||||
|
||||
.sl-btn-save-timing {
|
||||
font-family: var(--admin-font-display);
|
||||
letter-spacing: 0.08em;
|
||||
text-transform: uppercase;
|
||||
background: transparent;
|
||||
color: var(--admin-accent);
|
||||
border: 1px solid var(--admin-accent);
|
||||
box-shadow: 0 0 16px rgba(0, 240, 255, 0.15);
|
||||
}
|
||||
|
||||
.sl-btn-save-timing:hover {
|
||||
background: rgba(0, 240, 255, 0.12);
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
/* URL result */
|
||||
.sl-url-result {
|
||||
border-radius: var(--admin-radius);
|
||||
border-color: rgba(0, 255, 157, 0.3);
|
||||
background: rgba(0, 255, 157, 0.05);
|
||||
}
|
||||
|
||||
.sl-url-result__label {
|
||||
color: #00ff9d;
|
||||
font-family: var(--admin-font-mono);
|
||||
letter-spacing: 0.08em;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
/* Status filter pills */
|
||||
.sl-status-filters {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
align-items: center;
|
||||
gap: 0.4rem;
|
||||
margin-bottom: 0.65rem;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.sl-status-pill {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 0.4rem;
|
||||
padding: 0.38rem 0.72rem;
|
||||
border-radius: var(--admin-radius);
|
||||
border: 1px solid rgba(0, 240, 255, 0.18);
|
||||
background: rgba(5, 6, 15, 0.7);
|
||||
color: #8892b8;
|
||||
font-family: var(--admin-font-mono);
|
||||
font-size: 0.75rem;
|
||||
font-weight: 600;
|
||||
letter-spacing: 0.04em;
|
||||
text-decoration: none;
|
||||
text-transform: uppercase;
|
||||
transition: border-color 0.15s, color 0.15s, box-shadow 0.15s, background 0.15s;
|
||||
}
|
||||
|
||||
.sl-status-pill__count {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
min-width: 1.35rem;
|
||||
padding: 0.1rem 0.35rem;
|
||||
border-radius: 2px;
|
||||
background: rgba(255, 255, 255, 0.06);
|
||||
font-size: 0.68rem;
|
||||
color: inherit;
|
||||
}
|
||||
|
||||
.sl-status-pill:hover {
|
||||
border-color: rgba(0, 240, 255, 0.4);
|
||||
color: var(--admin-accent);
|
||||
box-shadow: 0 0 12px rgba(0, 240, 255, 0.1);
|
||||
}
|
||||
|
||||
.sl-status-pill.is-active {
|
||||
color: #05060f;
|
||||
border-color: transparent;
|
||||
box-shadow: 0 0 16px rgba(0, 240, 255, 0.2);
|
||||
}
|
||||
|
||||
.sl-status-pill.is-active .sl-status-pill__count {
|
||||
background: rgba(0, 0, 0, 0.2);
|
||||
color: inherit;
|
||||
}
|
||||
|
||||
.sl-status-pill--active.is-active {
|
||||
background: #00ff9d;
|
||||
box-shadow: 0 0 16px rgba(0, 255, 157, 0.35);
|
||||
}
|
||||
|
||||
.sl-status-pill--expired.is-active {
|
||||
background: #ffe23d;
|
||||
color: #1a1400;
|
||||
box-shadow: 0 0 16px rgba(255, 226, 61, 0.35);
|
||||
}
|
||||
|
||||
.sl-status-pill--expired.is-active .sl-status-pill__count {
|
||||
color: #1a1400;
|
||||
}
|
||||
|
||||
.sl-status-pill--cleaned.is-active {
|
||||
background: #ff3860;
|
||||
box-shadow: 0 0 16px rgba(255, 56, 96, 0.35);
|
||||
}
|
||||
|
||||
.sl-status-pill:not(.sl-status-pill--active):not(.sl-status-pill--expired):not(.sl-status-pill--cleaned).is-active {
|
||||
background: var(--admin-accent);
|
||||
box-shadow: 0 0 16px var(--admin-accent-glow);
|
||||
}
|
||||
|
||||
.sl-controls-bar .sl-toolbar {
|
||||
margin-left: auto;
|
||||
}
|
||||
|
||||
@media (min-width: 768px) {
|
||||
.sl-controls-bar {
|
||||
align-items: flex-start;
|
||||
}
|
||||
|
||||
.sl-status-filters {
|
||||
margin-bottom: 0;
|
||||
width: auto;
|
||||
flex: 1;
|
||||
}
|
||||
}
|
||||
|
||||
/* Controls bar */
|
||||
.sl-controls-bar {
|
||||
border-radius: var(--admin-radius);
|
||||
border-color: rgba(0, 240, 255, 0.12);
|
||||
background: rgba(13, 16, 37, 0.6);
|
||||
}
|
||||
|
||||
.sl-toggle span {
|
||||
font-family: var(--admin-font-mono);
|
||||
font-size: 0.78rem;
|
||||
color: #8892b8;
|
||||
}
|
||||
|
||||
/* Renewal codes page */
|
||||
.admin-page-renewal .rc-code-display,
|
||||
.admin-page-renewal .rc-code-pill {
|
||||
color: var(--admin-accent);
|
||||
font-family: var(--admin-font-mono);
|
||||
text-shadow: 0 0 8px var(--admin-accent-glow);
|
||||
}
|
||||
|
||||
.admin-page-renewal .rc-days-badge {
|
||||
color: #00ff9d;
|
||||
background: rgba(0, 255, 157, 0.1);
|
||||
border: 1px solid rgba(0, 255, 157, 0.25);
|
||||
border-radius: var(--admin-radius);
|
||||
font-family: var(--admin-font-mono);
|
||||
}
|
||||
|
||||
.admin-page-renewal .rc-usage-fill {
|
||||
background: linear-gradient(90deg, var(--admin-accent), var(--admin-accent-3));
|
||||
box-shadow: 0 0 8px var(--admin-accent-glow);
|
||||
}
|
||||
|
||||
/* Settings form */
|
||||
.admin-page-settings .form-label,
|
||||
.sl-field__label {
|
||||
font-family: var(--admin-font-mono);
|
||||
font-size: 0.72rem;
|
||||
letter-spacing: 0.08em;
|
||||
text-transform: uppercase;
|
||||
color: #8892b8;
|
||||
}
|
||||
|
||||
/* Server labels page */
|
||||
.sl-server-row {
|
||||
border-radius: var(--admin-radius);
|
||||
border-color: rgba(0, 240, 255, 0.1);
|
||||
}
|
||||
|
||||
.sl-server-row:hover {
|
||||
border-color: rgba(0, 240, 255, 0.25);
|
||||
background: rgba(0, 240, 255, 0.03);
|
||||
}
|
||||
|
||||
.sl-hint a {
|
||||
color: var(--admin-accent);
|
||||
}
|
||||
|
||||
.sl-hint--warn {
|
||||
color: #ffe23d;
|
||||
border-color: rgba(255, 226, 61, 0.25);
|
||||
background: rgba(255, 226, 61, 0.06);
|
||||
}
|
||||
|
||||
/* Icons glow on hover */
|
||||
.admin-content .fa-solid,
|
||||
.admin-content .fa-regular {
|
||||
transition: filter 0.15s;
|
||||
}
|
||||
|
||||
.sl-panel__head:hover i,
|
||||
.dash-panel-head:hover i {
|
||||
filter: drop-shadow(0 0 8px var(--admin-accent-glow));
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,259 @@
|
||||
/**
|
||||
* Amnezia Admin — страница входа (изолирована от admin.css)
|
||||
*/
|
||||
.login-page {
|
||||
--login-bg: #070b14;
|
||||
--login-card: rgba(17, 24, 39, 0.92);
|
||||
--login-border: rgba(56, 189, 248, 0.22);
|
||||
--login-text: #f1f5f9;
|
||||
--login-muted: #94a3b8;
|
||||
--login-accent: #38bdf8;
|
||||
--login-accent-deep: #0ea5e9;
|
||||
--login-input-bg: #0f172a;
|
||||
--login-input-border: #334155;
|
||||
--login-glow: rgba(56, 189, 248, 0.35);
|
||||
|
||||
margin: 0;
|
||||
min-height: 100vh;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
padding: 1.25rem;
|
||||
font-family: "Inter", system-ui, sans-serif;
|
||||
color: var(--login-text);
|
||||
background: var(--login-bg);
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.login-page::before {
|
||||
content: "";
|
||||
position: fixed;
|
||||
inset: 0;
|
||||
z-index: 0;
|
||||
pointer-events: none;
|
||||
background:
|
||||
radial-gradient(ellipse 80% 50% at 50% -10%, rgba(56, 189, 248, 0.18), transparent 55%),
|
||||
radial-gradient(ellipse 40% 35% at 100% 80%, rgba(99, 102, 241, 0.12), transparent 50%),
|
||||
radial-gradient(ellipse 35% 30% at 0% 90%, rgba(14, 165, 233, 0.1), transparent 45%),
|
||||
linear-gradient(165deg, #070b14 0%, #0c1222 45%, #070b14 100%);
|
||||
}
|
||||
|
||||
.login-page::after {
|
||||
content: "";
|
||||
position: fixed;
|
||||
inset: 0;
|
||||
z-index: 0;
|
||||
pointer-events: none;
|
||||
opacity: 0.35;
|
||||
background-image:
|
||||
linear-gradient(rgba(56, 189, 248, 0.04) 1px, transparent 1px),
|
||||
linear-gradient(90deg, rgba(56, 189, 248, 0.04) 1px, transparent 1px);
|
||||
background-size: 48px 48px;
|
||||
mask-image: radial-gradient(ellipse 70% 60% at 50% 40%, black 20%, transparent 75%);
|
||||
}
|
||||
|
||||
.login-wrap {
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
width: 100%;
|
||||
max-width: 400px;
|
||||
}
|
||||
|
||||
.login-card {
|
||||
background: var(--login-card);
|
||||
border: 1px solid var(--login-border);
|
||||
border-radius: 1.125rem;
|
||||
padding: 2rem 1.75rem 1.75rem;
|
||||
box-shadow:
|
||||
0 0 0 1px rgba(255, 255, 255, 0.04) inset,
|
||||
0 24px 64px rgba(0, 0, 0, 0.55),
|
||||
0 0 48px rgba(56, 189, 248, 0.08);
|
||||
backdrop-filter: blur(12px);
|
||||
}
|
||||
|
||||
.login-brand {
|
||||
text-align: center;
|
||||
margin-bottom: 1.75rem;
|
||||
}
|
||||
|
||||
.login-brand-icon {
|
||||
width: 64px;
|
||||
height: 64px;
|
||||
margin: 0 auto 1rem;
|
||||
border-radius: 1rem;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
font-size: 1.75rem;
|
||||
color: var(--login-accent);
|
||||
background: linear-gradient(145deg, rgba(56, 189, 248, 0.2), rgba(14, 165, 233, 0.08));
|
||||
border: 1px solid rgba(56, 189, 248, 0.35);
|
||||
box-shadow: 0 0 28px var(--login-glow);
|
||||
}
|
||||
|
||||
.login-title {
|
||||
margin: 0 0 0.35rem;
|
||||
font-size: 1.35rem;
|
||||
font-weight: 700;
|
||||
letter-spacing: 0.02em;
|
||||
color: var(--login-text);
|
||||
}
|
||||
|
||||
.login-subtitle {
|
||||
margin: 0;
|
||||
font-size: 0.875rem;
|
||||
color: var(--login-muted);
|
||||
}
|
||||
|
||||
.login-alert {
|
||||
display: flex;
|
||||
align-items: flex-start;
|
||||
gap: 0.5rem;
|
||||
padding: 0.65rem 0.85rem;
|
||||
margin-bottom: 1.25rem;
|
||||
border-radius: 0.5rem;
|
||||
font-size: 0.875rem;
|
||||
background: rgba(239, 68, 68, 0.12);
|
||||
border: 1px solid rgba(248, 113, 113, 0.4);
|
||||
color: #fecaca;
|
||||
}
|
||||
|
||||
.login-field {
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
|
||||
.login-field label {
|
||||
display: block;
|
||||
margin-bottom: 0.35rem;
|
||||
font-size: 0.8rem;
|
||||
font-weight: 500;
|
||||
color: var(--login-muted);
|
||||
}
|
||||
|
||||
.login-field label i {
|
||||
color: var(--login-accent);
|
||||
margin-right: 0.25rem;
|
||||
width: 1rem;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.login-input {
|
||||
display: block;
|
||||
width: 100%;
|
||||
box-sizing: border-box;
|
||||
padding: 0.65rem 0.85rem;
|
||||
font-size: 0.95rem;
|
||||
line-height: 1.4;
|
||||
color: var(--login-text) !important;
|
||||
-webkit-text-fill-color: var(--login-text);
|
||||
background: var(--login-input-bg) !important;
|
||||
border: 1px solid var(--login-input-border);
|
||||
border-radius: 0.5rem;
|
||||
transition: border-color 0.15s, box-shadow 0.15s;
|
||||
}
|
||||
|
||||
.login-input::placeholder {
|
||||
color: #64748b;
|
||||
-webkit-text-fill-color: #64748b;
|
||||
}
|
||||
|
||||
.login-input:hover {
|
||||
border-color: #475569;
|
||||
}
|
||||
|
||||
.login-input:focus {
|
||||
outline: none;
|
||||
border-color: var(--login-accent);
|
||||
box-shadow: 0 0 0 3px rgba(56, 189, 248, 0.2);
|
||||
}
|
||||
|
||||
.login-btn {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
gap: 0.5rem;
|
||||
width: 100%;
|
||||
margin-top: 0.25rem;
|
||||
padding: 0.7rem 1rem;
|
||||
font-size: 0.95rem;
|
||||
font-weight: 600;
|
||||
color: #fff;
|
||||
background: linear-gradient(135deg, var(--login-accent-deep) 0%, #0284c7 100%);
|
||||
border: none;
|
||||
border-radius: 0.5rem;
|
||||
cursor: pointer;
|
||||
transition: transform 0.12s, box-shadow 0.15s, filter 0.15s;
|
||||
box-shadow: 0 4px 20px rgba(14, 165, 233, 0.35);
|
||||
}
|
||||
|
||||
.login-btn:hover {
|
||||
filter: brightness(1.08);
|
||||
box-shadow: 0 6px 28px rgba(14, 165, 233, 0.45);
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.login-btn:active {
|
||||
transform: scale(0.98);
|
||||
}
|
||||
|
||||
.login-divider {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0.75rem;
|
||||
margin: 1.25rem 0;
|
||||
color: var(--login-muted);
|
||||
font-size: 0.75rem;
|
||||
}
|
||||
|
||||
.login-divider::before,
|
||||
.login-divider::after {
|
||||
content: "";
|
||||
flex: 1;
|
||||
height: 1px;
|
||||
background: var(--login-input-border);
|
||||
}
|
||||
|
||||
.login-btn-oauth {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
gap: 0.5rem;
|
||||
width: 100%;
|
||||
padding: 0.6rem 1rem;
|
||||
font-size: 0.9rem;
|
||||
font-weight: 500;
|
||||
color: var(--login-text);
|
||||
text-decoration: none;
|
||||
background: transparent;
|
||||
border: 1px solid var(--login-input-border);
|
||||
border-radius: 0.5rem;
|
||||
transition: border-color 0.15s, background 0.15s, color 0.15s;
|
||||
}
|
||||
|
||||
.login-btn-oauth:hover {
|
||||
border-color: rgba(56, 189, 248, 0.45);
|
||||
background: rgba(56, 189, 248, 0.08);
|
||||
color: var(--login-accent);
|
||||
}
|
||||
|
||||
.login-footer {
|
||||
margin: 1.25rem 0 0;
|
||||
text-align: center;
|
||||
font-size: 0.8rem;
|
||||
color: var(--login-muted);
|
||||
}
|
||||
|
||||
.login-footer a {
|
||||
color: var(--login-accent);
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.login-footer a:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.login-footer code {
|
||||
color: #7dd3fc;
|
||||
font-size: 0.78em;
|
||||
}
|
||||
@@ -0,0 +1,465 @@
|
||||
/**
|
||||
* Secure Link — портал пользователя (index, cabinet)
|
||||
*/
|
||||
.portal-page {
|
||||
--portal-bg: #070b14;
|
||||
--portal-card: rgba(17, 24, 39, 0.94);
|
||||
--portal-border: rgba(56, 189, 248, 0.22);
|
||||
--portal-accent: #38bdf8;
|
||||
--portal-accent-2: #a78bfa;
|
||||
--portal-text: #f1f5f9;
|
||||
--portal-muted: #94a3b8;
|
||||
--portal-ok: #34d399;
|
||||
--portal-warn: #fbbf24;
|
||||
--portal-err: #f87171;
|
||||
|
||||
margin: 0;
|
||||
min-height: 100vh;
|
||||
font-family: "Inter", system-ui, sans-serif;
|
||||
color: var(--portal-text);
|
||||
background: var(--portal-bg);
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.portal-bg {
|
||||
position: fixed;
|
||||
inset: 0;
|
||||
z-index: 0;
|
||||
pointer-events: none;
|
||||
background:
|
||||
radial-gradient(ellipse 70% 45% at 20% -5%, rgba(56, 189, 248, 0.14), transparent 55%),
|
||||
radial-gradient(ellipse 50% 40% at 100% 100%, rgba(139, 92, 246, 0.12), transparent 50%),
|
||||
linear-gradient(165deg, #070b14 0%, #0c1222 50%, #070b14 100%);
|
||||
}
|
||||
|
||||
.portal-bg::after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
inset: 0;
|
||||
opacity: 0.3;
|
||||
background-image:
|
||||
linear-gradient(rgba(56, 189, 248, 0.04) 1px, transparent 1px),
|
||||
linear-gradient(90deg, rgba(56, 189, 248, 0.04) 1px, transparent 1px);
|
||||
background-size: 40px 40px;
|
||||
mask-image: radial-gradient(ellipse 80% 60% at 50% 30%, black 15%, transparent 70%);
|
||||
}
|
||||
|
||||
.portal-wrap {
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
max-width: 420px;
|
||||
margin: 0 auto;
|
||||
padding: 2rem 1.25rem 3rem;
|
||||
}
|
||||
|
||||
.portal-wrap--wide {
|
||||
max-width: 920px;
|
||||
}
|
||||
|
||||
.portal-hero-icon {
|
||||
width: 64px;
|
||||
height: 64px;
|
||||
margin: 0 auto 1rem;
|
||||
border-radius: 1rem;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
font-size: 1.75rem;
|
||||
color: var(--portal-accent);
|
||||
background: rgba(56, 189, 248, 0.12);
|
||||
border: 1px solid var(--portal-border);
|
||||
box-shadow: 0 0 32px rgba(56, 189, 248, 0.2);
|
||||
}
|
||||
|
||||
.portal-brand {
|
||||
font-family: "Orbitron", sans-serif;
|
||||
font-size: 0.75rem;
|
||||
letter-spacing: 0.2em;
|
||||
text-transform: uppercase;
|
||||
color: var(--portal-accent);
|
||||
margin: 0 0 0.35rem;
|
||||
}
|
||||
|
||||
.portal-title {
|
||||
font-family: "Orbitron", sans-serif;
|
||||
font-weight: 700;
|
||||
margin: 0 0 0.5rem;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.portal-lead {
|
||||
color: var(--portal-muted);
|
||||
font-size: 0.92rem;
|
||||
line-height: 1.5;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.portal-auth-card {
|
||||
background: var(--portal-card);
|
||||
border: 1px solid var(--portal-border);
|
||||
border-radius: 1rem;
|
||||
padding: 0;
|
||||
overflow: hidden;
|
||||
box-shadow: 0 20px 50px rgba(0, 0, 0, 0.45);
|
||||
backdrop-filter: blur(10px);
|
||||
}
|
||||
|
||||
.portal-tabs {
|
||||
display: flex;
|
||||
border-bottom: 1px solid rgba(42, 51, 82, 0.8);
|
||||
}
|
||||
|
||||
.portal-tab {
|
||||
flex: 1;
|
||||
text-align: center;
|
||||
padding: 0.85rem 1rem;
|
||||
font-weight: 600;
|
||||
font-size: 0.88rem;
|
||||
color: var(--portal-muted);
|
||||
text-decoration: none;
|
||||
transition: color 0.15s, background 0.15s;
|
||||
}
|
||||
|
||||
.portal-tab:hover {
|
||||
color: var(--portal-text);
|
||||
background: rgba(56, 189, 248, 0.06);
|
||||
}
|
||||
|
||||
.portal-tab.is-active {
|
||||
color: var(--portal-accent);
|
||||
background: rgba(56, 189, 248, 0.1);
|
||||
box-shadow: inset 0 -2px 0 var(--portal-accent);
|
||||
}
|
||||
|
||||
.portal-form {
|
||||
padding: 1.35rem 1.25rem 1.5rem;
|
||||
}
|
||||
|
||||
.portal-label {
|
||||
display: block;
|
||||
font-size: 0.78rem;
|
||||
font-weight: 600;
|
||||
color: #cbd5e1;
|
||||
margin: 0 0 0.35rem;
|
||||
}
|
||||
|
||||
.portal-optional {
|
||||
font-weight: 400;
|
||||
color: var(--portal-muted);
|
||||
}
|
||||
|
||||
.portal-input {
|
||||
width: 100%;
|
||||
box-sizing: border-box;
|
||||
padding: 0.55rem 0.75rem;
|
||||
margin-bottom: 0.85rem;
|
||||
font-size: 0.9rem;
|
||||
color: #f8fafc;
|
||||
background: #0f172a;
|
||||
border: 1px solid #334155;
|
||||
border-radius: 0.45rem;
|
||||
}
|
||||
|
||||
.portal-input:focus {
|
||||
outline: none;
|
||||
border-color: var(--portal-accent);
|
||||
box-shadow: 0 0 0 3px rgba(56, 189, 248, 0.2);
|
||||
}
|
||||
|
||||
.portal-btn {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
gap: 0.4rem;
|
||||
padding: 0.6rem 1.1rem;
|
||||
font-size: 0.88rem;
|
||||
font-weight: 600;
|
||||
border-radius: 0.5rem;
|
||||
border: none;
|
||||
cursor: pointer;
|
||||
text-decoration: none;
|
||||
font-family: inherit;
|
||||
transition: filter 0.15s, transform 0.1s;
|
||||
}
|
||||
|
||||
.portal-btn--primary {
|
||||
color: #fff;
|
||||
background: linear-gradient(135deg, #0ea5e9, #0284c7);
|
||||
box-shadow: 0 4px 20px rgba(14, 165, 233, 0.35);
|
||||
}
|
||||
|
||||
.portal-btn--accent {
|
||||
color: #fff;
|
||||
background: linear-gradient(135deg, #8b5cf6, #6366f1);
|
||||
box-shadow: 0 4px 18px rgba(139, 92, 246, 0.35);
|
||||
}
|
||||
|
||||
.portal-btn--outline {
|
||||
color: var(--portal-accent);
|
||||
background: transparent;
|
||||
border: 1px solid rgba(56, 189, 248, 0.4);
|
||||
}
|
||||
|
||||
.portal-btn--ghost {
|
||||
color: var(--portal-muted);
|
||||
background: rgba(30, 41, 59, 0.6);
|
||||
border: 1px solid #334155;
|
||||
}
|
||||
|
||||
.portal-btn:hover {
|
||||
filter: brightness(1.08);
|
||||
}
|
||||
|
||||
.portal-form-note {
|
||||
margin: 0.75rem 0 0;
|
||||
font-size: 0.75rem;
|
||||
color: var(--portal-muted);
|
||||
line-height: 1.4;
|
||||
}
|
||||
|
||||
.portal-alert {
|
||||
display: flex;
|
||||
align-items: flex-start;
|
||||
gap: 0.5rem;
|
||||
padding: 0.65rem 0.85rem;
|
||||
border-radius: 0.5rem;
|
||||
font-size: 0.85rem;
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
|
||||
.portal-alert--err {
|
||||
background: rgba(248, 113, 113, 0.1);
|
||||
border: 1px solid rgba(248, 113, 113, 0.35);
|
||||
color: #fecaca;
|
||||
}
|
||||
|
||||
.portal-alert--ok {
|
||||
background: rgba(52, 211, 153, 0.1);
|
||||
border: 1px solid rgba(52, 211, 153, 0.35);
|
||||
color: #a7f3d0;
|
||||
}
|
||||
|
||||
.portal-alert--warn {
|
||||
background: rgba(251, 191, 36, 0.08);
|
||||
border: 1px solid rgba(251, 191, 36, 0.3);
|
||||
color: #fde68a;
|
||||
}
|
||||
|
||||
.portal-footer {
|
||||
text-align: center;
|
||||
margin-top: 1.5rem;
|
||||
font-size: 0.82rem;
|
||||
}
|
||||
|
||||
.portal-footer a {
|
||||
color: var(--portal-muted);
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.portal-footer a:hover {
|
||||
color: var(--portal-accent);
|
||||
}
|
||||
|
||||
/* Cabinet */
|
||||
.portal-cabinet-head {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
align-items: flex-start;
|
||||
justify-content: space-between;
|
||||
gap: 1rem;
|
||||
margin-bottom: 1.5rem;
|
||||
}
|
||||
|
||||
.portal-user-line {
|
||||
font-size: 0.85rem;
|
||||
color: var(--portal-muted);
|
||||
margin: 0.25rem 0 0;
|
||||
}
|
||||
|
||||
.portal-head-actions {
|
||||
display: flex;
|
||||
gap: 0.5rem;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.portal-panel {
|
||||
background: var(--portal-card);
|
||||
border: 1px solid rgba(42, 51, 82, 0.9);
|
||||
border-radius: 0.85rem;
|
||||
padding: 1.15rem 1.2rem;
|
||||
margin-bottom: 1rem;
|
||||
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.25);
|
||||
}
|
||||
|
||||
.portal-panel--renew {
|
||||
border-color: rgba(167, 139, 250, 0.35);
|
||||
}
|
||||
|
||||
.portal-panel--warn {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0.65rem;
|
||||
border-color: rgba(251, 191, 36, 0.35);
|
||||
color: #fde68a;
|
||||
}
|
||||
|
||||
.portal-panel--empty {
|
||||
text-align: center;
|
||||
color: var(--portal-muted);
|
||||
}
|
||||
|
||||
.portal-panel__title {
|
||||
font-size: 1rem;
|
||||
font-weight: 600;
|
||||
margin: 0 0 0.65rem;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0.45rem;
|
||||
}
|
||||
|
||||
.portal-panel__title i {
|
||||
color: var(--portal-accent);
|
||||
}
|
||||
|
||||
.portal-muted {
|
||||
color: var(--portal-muted);
|
||||
}
|
||||
|
||||
.portal-grid-2 {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr;
|
||||
gap: 1rem;
|
||||
}
|
||||
|
||||
@media (max-width: 767.98px) {
|
||||
.portal-grid-2 {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
}
|
||||
|
||||
.portal-links-grid {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
|
||||
gap: 0.65rem;
|
||||
}
|
||||
|
||||
.portal-link-card {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 0.25rem;
|
||||
padding: 0.75rem 0.85rem;
|
||||
border-radius: 0.55rem;
|
||||
border: 1px solid #334155;
|
||||
background: rgba(15, 23, 42, 0.6);
|
||||
text-decoration: none;
|
||||
color: inherit;
|
||||
transition: border-color 0.15s, box-shadow 0.15s;
|
||||
}
|
||||
|
||||
.portal-link-card:hover {
|
||||
border-color: rgba(56, 189, 248, 0.45);
|
||||
}
|
||||
|
||||
.portal-link-card.is-active {
|
||||
border-color: var(--portal-accent);
|
||||
box-shadow: 0 0 20px rgba(56, 189, 248, 0.15);
|
||||
}
|
||||
|
||||
.portal-link-card__id {
|
||||
font-weight: 700;
|
||||
color: #7dd3fc;
|
||||
font-size: 0.9rem;
|
||||
}
|
||||
|
||||
.portal-link-card__meta,
|
||||
.portal-link-card__uses {
|
||||
font-size: 0.75rem;
|
||||
color: var(--portal-muted);
|
||||
}
|
||||
|
||||
.portal-badge {
|
||||
align-self: flex-start;
|
||||
font-size: 0.65rem;
|
||||
font-weight: 700;
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 0.04em;
|
||||
padding: 0.15rem 0.45rem;
|
||||
border-radius: 999px;
|
||||
}
|
||||
|
||||
.portal-badge--ok {
|
||||
background: rgba(52, 211, 153, 0.15);
|
||||
color: #6ee7b7;
|
||||
border: 1px solid rgba(52, 211, 153, 0.35);
|
||||
}
|
||||
|
||||
.portal-badge--warn {
|
||||
background: rgba(251, 191, 36, 0.12);
|
||||
color: #fcd34d;
|
||||
border: 1px solid rgba(251, 191, 36, 0.35);
|
||||
}
|
||||
|
||||
.portal-badge--muted {
|
||||
background: rgba(100, 116, 139, 0.2);
|
||||
color: #94a3b8;
|
||||
border: 1px solid rgba(100, 116, 139, 0.4);
|
||||
}
|
||||
|
||||
.portal-migrate-card {
|
||||
border: 1px solid rgba(42, 51, 82, 0.8);
|
||||
border-radius: 0.55rem;
|
||||
padding: 0.65rem 0.85rem;
|
||||
margin-bottom: 0.5rem;
|
||||
background: rgba(15, 23, 42, 0.5);
|
||||
}
|
||||
|
||||
.portal-migrate-card summary {
|
||||
cursor: pointer;
|
||||
font-weight: 500;
|
||||
font-size: 0.88rem;
|
||||
}
|
||||
|
||||
.portal-page--cabinet .server-item {
|
||||
display: block;
|
||||
width: 100%;
|
||||
text-align: left;
|
||||
padding: 0.55rem 0.75rem;
|
||||
margin-bottom: 0.35rem;
|
||||
border: 1px solid #334155;
|
||||
border-radius: 0.45rem;
|
||||
background: #0f172a;
|
||||
color: #e2e8f0;
|
||||
cursor: pointer;
|
||||
font-family: inherit;
|
||||
font-size: 0.88rem;
|
||||
}
|
||||
|
||||
.portal-page--cabinet .server-item.is-selected {
|
||||
border-color: var(--portal-accent);
|
||||
background: rgba(56, 189, 248, 0.12);
|
||||
}
|
||||
|
||||
.portal-renew-form .portal-input {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.portal-sub-card .portal-stat-num {
|
||||
font-family: "Orbitron", sans-serif;
|
||||
font-size: 1.75rem;
|
||||
font-weight: 700;
|
||||
color: #7dd3fc;
|
||||
}
|
||||
|
||||
.portal-feature-list {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
list-style: none;
|
||||
font-size: 0.85rem;
|
||||
color: var(--portal-muted);
|
||||
}
|
||||
|
||||
.portal-feature-list li {
|
||||
margin-bottom: 0.35rem;
|
||||
}
|
||||
|
||||
.w-100 { width: 100%; }
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user