/* GEOFlow Alibaba Cloud-inspired admin console theme */
body.admin-ui {
    --aliyun-primary: #ff6a00;
    --aliyun-primary-hover: #e65f00;
    --aliyun-primary-soft: #fff3e8;
    --aliyun-primary-border: #ffd7b3;
    --aliyun-link: #0064c8;
    --aliyun-link-hover: #004a99;
    --aliyun-link-soft: #eaf4ff;
    --aliyun-console-bg: #f5f7fa;
    --aliyun-surface: #ffffff;
    --aliyun-surface-soft: #fafbfc;
    --aliyun-surface-muted: #f0f3f7;
    --aliyun-border: #dcdfe6;
    --aliyun-border-strong: #c7cdd6;
    --aliyun-text: #181c24;
    --aliyun-muted: #5f6b7a;
    --aliyun-weak: #86909c;
    --aliyun-topbar: #1f2329;
    --aliyun-topbar-border: #303642;
    --aliyun-success: #00a870;
    --aliyun-success-soft: #e8fff6;
    --aliyun-warning: #ff9a00;
    --aliyun-warning-soft: #fff7e8;
    --aliyun-danger: #e34d59;
    --aliyun-danger-soft: #fff0f1;
    --aliyun-radius: 8px;
    --aliyun-radius-panel: 12px;
    --aliyun-radius-popover: 12px;
    --aliyun-shadow: 0 1px 2px rgba(24, 28, 36, 0.04), 0 8px 24px rgba(24, 28, 36, 0.06);
    --aliyun-shadow-panel: 0 8px 28px rgba(24, 28, 36, 0.12);
    --aliyun-focus: 0 0 0 3px rgba(0, 100, 200, 0.16);
    --admin-input-bg: var(--aliyun-surface);
    --admin-input-bg-hover: #ffffff;
    --admin-input-bg-disabled: var(--aliyun-surface-muted);
    --admin-input-border: var(--aliyun-border);
    --admin-input-border-hover: var(--aliyun-border-strong);
    --admin-input-border-focus: var(--aliyun-link);
    --admin-input-text: var(--aliyun-text);
    --admin-input-placeholder: var(--aliyun-weak);
    --admin-input-shadow: none;
    --admin-input-focus-shadow: var(--aliyun-focus);
    min-height: 100vh;
    background: var(--aliyun-console-bg);
    color: var(--aliyun-text);
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, "Microsoft YaHei", sans-serif;
    font-size: 14px;
    line-height: 20px;
    letter-spacing: 0;
}

body.admin-ui * {
    letter-spacing: 0;
}

body.admin-ui h1,
body.admin-ui .text-2xl,
body.admin-ui .text-3xl {
    color: var(--aliyun-text) !important;
    font-size: 24px !important;
    line-height: 32px !important;
    font-weight: 700 !important;
}

body.admin-ui h2,
body.admin-ui h3,
body.admin-ui .text-lg,
body.admin-ui .text-xl {
    color: var(--aliyun-text) !important;
    font-weight: 700 !important;
}

body.admin-ui .text-gray-900,
body.admin-ui .text-slate-900,
body.admin-ui .text-gray-800,
body.admin-ui .text-slate-800 {
    color: var(--aliyun-text) !important;
}

body.admin-ui .text-gray-700,
body.admin-ui .text-slate-700,
body.admin-ui .text-gray-600,
body.admin-ui .text-slate-600,
body.admin-ui .text-gray-500,
body.admin-ui .text-slate-500,
body.admin-ui .text-gray-400,
body.admin-ui .text-slate-400 {
    color: var(--aliyun-muted) !important;
}

body.admin-ui a {
    color: inherit;
    transition: color 140ms ease, background-color 140ms ease, border-color 140ms ease, box-shadow 140ms ease;
}

body.admin-ui a:hover {
    color: var(--aliyun-link);
}

body.admin-ui main {
    padding-top: 24px;
    padding-bottom: 36px;
}

body.admin-ui footer {
    background-color: var(--aliyun-surface) !important;
    border-color: var(--aliyun-border) !important;
}

body.admin-ui .bg-white,
body.admin-ui .bg-white\/70,
body.admin-ui .bg-white\/80,
body.admin-ui .bg-white\/90 {
    background-color: var(--aliyun-surface) !important;
}

body.admin-ui .bg-gray-50,
body.admin-ui .bg-slate-50 {
    background-color: var(--aliyun-surface-soft) !important;
}

body.admin-ui .border,
body.admin-ui .border-gray-100,
body.admin-ui .border-gray-200,
body.admin-ui .border-gray-300,
body.admin-ui .border-slate-200,
body.admin-ui .ring-1 {
    border-color: var(--aliyun-border) !important;
    --tw-ring-color: var(--aliyun-border) !important;
}

body.admin-ui .shadow,
body.admin-ui .shadow-sm,
body.admin-ui .shadow-md,
body.admin-ui .shadow-lg,
body.admin-ui .shadow-xl,
body.admin-ui .shadow-2xl {
    box-shadow: var(--aliyun-shadow) !important;
}

body.admin-ui .rounded,
body.admin-ui .rounded-md {
    border-radius: var(--aliyun-radius) !important;
}

body.admin-ui .rounded-lg,
body.admin-ui .rounded-xl,
body.admin-ui .rounded-2xl,
body.admin-ui .rounded-3xl {
    border-radius: var(--aliyun-radius-panel) !important;
}

body.admin-ui .rounded-full {
    border-radius: 999px !important;
}

body.admin-ui .divide-gray-100 > :not([hidden]) ~ :not([hidden]),
body.admin-ui .divide-gray-200 > :not([hidden]) ~ :not([hidden]) {
    border-color: var(--aliyun-border) !important;
}

body.admin-ui .bg-blue-600,
body.admin-ui .bg-indigo-600,
body.admin-ui .bg-purple-600,
body.admin-ui .bg-green-600,
body.admin-ui .bg-orange-600,
body.admin-ui .bg-amber-500 {
    background-color: var(--aliyun-primary) !important;
    color: #ffffff !important;
}

body.admin-ui .hover\:bg-blue-700:hover,
body.admin-ui .hover\:bg-indigo-700:hover,
body.admin-ui .hover\:bg-purple-700:hover,
body.admin-ui .hover\:bg-green-700:hover,
body.admin-ui .hover\:bg-orange-700:hover,
body.admin-ui .hover\:bg-amber-600:hover {
    background-color: var(--aliyun-primary-hover) !important;
}

body.admin-ui .bg-slate-800,
body.admin-ui .bg-gray-900 {
    background-color: #2a303b !important;
}

body.admin-ui .hover\:bg-slate-900:hover,
body.admin-ui .hover\:bg-black:hover {
    background-color: #171b22 !important;
}

body.admin-ui .text-blue-600,
body.admin-ui .text-indigo-600,
body.admin-ui .text-purple-600,
body.admin-ui .text-cyan-600 {
    color: var(--aliyun-link) !important;
}

body.admin-ui .text-orange-600,
body.admin-ui .text-orange-700,
body.admin-ui .text-orange-800,
body.admin-ui .text-amber-600,
body.admin-ui .text-amber-700 {
    color: var(--aliyun-primary) !important;
}

body.admin-ui .text-green-600,
body.admin-ui .text-green-700,
body.admin-ui .text-green-800,
body.admin-ui .text-emerald-600,
body.admin-ui .text-emerald-700 {
    color: var(--aliyun-success) !important;
}

body.admin-ui .text-red-600,
body.admin-ui .text-red-700,
body.admin-ui .text-red-800,
body.admin-ui .text-rose-600,
body.admin-ui .text-rose-700 {
    color: var(--aliyun-danger) !important;
}

body.admin-ui .bg-orange-50,
body.admin-ui .bg-orange-100,
body.admin-ui .bg-amber-50,
body.admin-ui .bg-amber-100 {
    background-color: var(--aliyun-primary-soft) !important;
}

body.admin-ui .border-orange-100,
body.admin-ui .border-orange-200,
body.admin-ui .border-orange-300,
body.admin-ui .border-amber-100,
body.admin-ui .border-amber-200 {
    border-color: var(--aliyun-primary-border) !important;
}

body.admin-ui .bg-blue-50,
body.admin-ui .bg-blue-100,
body.admin-ui .bg-indigo-50,
body.admin-ui .bg-indigo-100,
body.admin-ui .bg-purple-50,
body.admin-ui .bg-purple-100,
body.admin-ui .bg-cyan-50,
body.admin-ui .bg-cyan-100 {
    background-color: var(--aliyun-link-soft) !important;
}

body.admin-ui .border-blue-100,
body.admin-ui .border-blue-200,
body.admin-ui .border-indigo-100,
body.admin-ui .border-indigo-200,
body.admin-ui .border-purple-100,
body.admin-ui .border-purple-200 {
    border-color: #b9dcff !important;
}

body.admin-ui .bg-green-50,
body.admin-ui .bg-green-100,
body.admin-ui .bg-emerald-50,
body.admin-ui .bg-emerald-100 {
    background-color: var(--aliyun-success-soft) !important;
}

body.admin-ui .bg-yellow-50,
body.admin-ui .bg-yellow-100 {
    background-color: var(--aliyun-warning-soft) !important;
}

body.admin-ui .bg-red-50,
body.admin-ui .bg-red-100,
body.admin-ui .bg-rose-50,
body.admin-ui .bg-rose-100 {
    background-color: var(--aliyun-danger-soft) !important;
}

body.admin-ui a[class*="px-4"][class*="py-2"],
body.admin-ui a[class*="px-3"][class*="py-2"],
body.admin-ui button[class*="px-4"],
body.admin-ui button[class*="px-3"],
body.admin-ui button[type="submit"] {
    min-height: 36px;
    border-radius: var(--aliyun-radius) !important;
    font-weight: 600;
    transition: background-color 140ms ease, border-color 140ms ease, box-shadow 140ms ease, color 140ms ease;
}

body.admin-ui button:focus-visible,
body.admin-ui a:focus-visible {
    outline: none;
    box-shadow: var(--aliyun-focus) !important;
}

body.admin-ui input:not([type]),
body.admin-ui input[type="text"],
body.admin-ui input[type="email"],
body.admin-ui input[type="password"],
body.admin-ui input[type="number"],
body.admin-ui input[type="url"],
body.admin-ui input[type="search"],
body.admin-ui input[type="tel"],
body.admin-ui input[type="date"],
body.admin-ui input[type="time"],
body.admin-ui input[type="datetime-local"],
body.admin-ui input[type="month"],
body.admin-ui input[type="week"],
body.admin-ui textarea,
body.admin-ui select {
    min-height: 36px;
    box-sizing: border-box;
    border: 1px solid var(--admin-input-border) !important;
    border-radius: var(--aliyun-radius) !important;
    background-color: var(--admin-input-bg) !important;
    color: var(--admin-input-text) !important;
    box-shadow: var(--admin-input-shadow) !important;
    font-size: 14px;
    line-height: 20px;
    transition: border-color 140ms ease, box-shadow 140ms ease, background-color 140ms ease;
}

body.admin-ui input:not([type]),
body.admin-ui input[type="text"],
body.admin-ui input[type="email"],
body.admin-ui input[type="password"],
body.admin-ui input[type="number"],
body.admin-ui input[type="url"],
body.admin-ui input[type="search"],
body.admin-ui input[type="tel"],
body.admin-ui input[type="date"],
body.admin-ui input[type="time"],
body.admin-ui input[type="datetime-local"],
body.admin-ui input[type="month"],
body.admin-ui input[type="week"],
body.admin-ui select {
    padding: 7px 12px !important;
}

body.admin-ui textarea {
    min-height: 104px;
    padding: 9px 12px !important;
    resize: vertical;
}

body.admin-ui select {
    padding-right: 32px !important;
}

body.admin-ui input::placeholder,
body.admin-ui textarea::placeholder {
    color: var(--admin-input-placeholder) !important;
    opacity: 1;
}

body.admin-ui input:not([type]):hover,
body.admin-ui input[type="text"]:hover,
body.admin-ui input[type="email"]:hover,
body.admin-ui input[type="password"]:hover,
body.admin-ui input[type="number"]:hover,
body.admin-ui input[type="url"]:hover,
body.admin-ui input[type="search"]:hover,
body.admin-ui input[type="tel"]:hover,
body.admin-ui input[type="date"]:hover,
body.admin-ui input[type="time"]:hover,
body.admin-ui input[type="datetime-local"]:hover,
body.admin-ui input[type="month"]:hover,
body.admin-ui input[type="week"]:hover,
body.admin-ui textarea:hover,
body.admin-ui select:hover {
    border-color: var(--admin-input-border-hover) !important;
    background-color: var(--admin-input-bg-hover) !important;
}

body.admin-ui input:not([type]):focus,
body.admin-ui input[type="text"]:focus,
body.admin-ui input[type="email"]:focus,
body.admin-ui input[type="password"]:focus,
body.admin-ui input[type="number"]:focus,
body.admin-ui input[type="url"]:focus,
body.admin-ui input[type="search"]:focus,
body.admin-ui input[type="tel"]:focus,
body.admin-ui input[type="date"]:focus,
body.admin-ui input[type="time"]:focus,
body.admin-ui input[type="datetime-local"]:focus,
body.admin-ui input[type="month"]:focus,
body.admin-ui input[type="week"]:focus,
body.admin-ui textarea:focus,
body.admin-ui select:focus {
    border-color: var(--admin-input-border-focus) !important;
    box-shadow: var(--admin-input-focus-shadow) !important;
    outline: none !important;
    --tw-ring-color: transparent !important;
    --tw-ring-offset-shadow: 0 0 #0000 !important;
    --tw-ring-shadow: 0 0 #0000 !important;
}

body.admin-ui input:disabled,
body.admin-ui textarea:disabled,
body.admin-ui select:disabled,
body.admin-ui input[readonly],
body.admin-ui textarea[readonly] {
    background-color: var(--admin-input-bg-disabled) !important;
    color: var(--aliyun-weak) !important;
    cursor: not-allowed;
}

body.admin-ui input[type="checkbox"],
body.admin-ui input[type="radio"] {
    accent-color: var(--aliyun-primary);
    min-height: auto;
    box-shadow: none !important;
}

body.admin-ui input[type="search"]::-webkit-search-cancel-button {
    cursor: pointer;
}

body.admin-ui table {
    color: var(--aliyun-text);
}

body.admin-ui thead,
body.admin-ui .bg-gray-50.text-xs,
body.admin-ui thead.bg-gray-50 {
    background-color: #f3f5f8 !important;
}

body.admin-ui th {
    color: var(--aliyun-text) !important;
    font-weight: 700 !important;
}

body.admin-ui td,
body.admin-ui th {
    border-color: var(--aliyun-border) !important;
}

body.admin-ui tbody tr {
    transition: background-color 140ms ease;
}

body.admin-ui tbody tr:hover {
    background-color: #fff8f2;
}

body.admin-ui .admin-flash-alert {
    border-radius: var(--aliyun-radius) !important;
    box-shadow: none;
}

body.admin-ui .editor-textarea {
    border-radius: var(--aliyun-radius) !important;
}

.admin-topbar {
    position: sticky;
    top: 0;
    z-index: 40;
    background: var(--aliyun-topbar);
    border-bottom: 1px solid var(--aliyun-topbar-border);
    box-shadow: 0 1px 0 rgba(255, 255, 255, 0.04) inset, 0 2px 8px rgba(24, 28, 36, 0.18);
}

.admin-topbar a,
.admin-topbar button,
.admin-topbar select {
    color: #c9d1dc !important;
}

.admin-topbar .admin-brand-mark,
.admin-topbar .admin-brand-mark span {
    color: #ffffff !important;
}

.admin-topbar .admin-brand-mark:hover,
.admin-topbar .admin-brand-mark:hover span {
    color: #ffffff !important;
}

.admin-topbar .admin-brand-icon {
    background: var(--aliyun-primary);
    border: 1px solid rgba(255, 255, 255, 0.12);
    color: #ffffff !important;
    box-shadow: 0 0 0 1px rgba(255, 106, 0, 0.22);
}

.admin-topbar .admin-brand-icon svg {
    color: #ffffff !important;
}

.admin-nav-link {
    border-radius: 0 !important;
    color: #c9d1dc !important;
    font-weight: 600;
    min-height: 44px;
}

.admin-nav-link:hover {
    background-color: rgba(255, 255, 255, 0.08);
    color: #ffffff !important;
}

.admin-nav-link.is-active {
    position: relative;
    background-color: rgba(255, 106, 0, 0.12);
    color: #ffffff !important;
    box-shadow: none;
}

.admin-nav-link.is-active::before {
    content: "";
    position: absolute;
    left: 12px;
    right: 12px;
    bottom: 0;
    height: 3px;
    background: var(--aliyun-primary);
}

.admin-nav-group {
    isolation: isolate;
}

.admin-nav-dropdown {
    pointer-events: none;
}

.admin-nav-group:hover .admin-nav-dropdown,
.admin-nav-group:focus-within .admin-nav-dropdown {
    visibility: visible !important;
    opacity: 1 !important;
    transform: translateY(0) !important;
    pointer-events: auto;
}

.admin-topbar button[onclick="toggleUserMenu()"]:hover,
.admin-topbar button[onclick="toggleModuleMenu()"]:hover,
.admin-topbar button[onclick="toggleAdminNotifications()"]:hover {
    background-color: rgba(255, 255, 255, 0.08) !important;
}

.admin-topbar #mobile-menu .admin-nav-link {
    color: var(--aliyun-text) !important;
    min-height: 40px;
}

.admin-topbar #mobile-menu .admin-nav-link:hover,
.admin-topbar #mobile-menu .admin-nav-link.is-active {
    background-color: var(--aliyun-primary-soft) !important;
    color: var(--aliyun-primary) !important;
}

.admin-topbar #mobile-menu .admin-nav-link.is-active::before {
    left: 8px;
    right: auto;
    top: 10px;
    bottom: 10px;
    width: 3px;
    height: auto;
}

.admin-user-avatar {
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.16);
    color: #ffffff;
}

.admin-menu-panel {
    border-color: var(--aliyun-border) !important;
    border-radius: var(--aliyun-radius-popover) !important;
    box-shadow: var(--aliyun-shadow-panel) !important;
    color: var(--aliyun-text) !important;
}

.admin-topbar .admin-menu-panel,
.admin-topbar .admin-menu-panel a,
.admin-topbar .admin-menu-panel button,
.admin-topbar .admin-menu-panel div,
.admin-topbar .admin-menu-panel p,
.admin-topbar .admin-menu-panel span {
    color: inherit !important;
}

.admin-topbar .admin-menu-panel a,
.admin-topbar .admin-menu-panel button {
    color: var(--aliyun-text) !important;
}

.admin-topbar .admin-menu-panel a:hover,
.admin-topbar .admin-menu-panel button:hover {
    background-color: var(--aliyun-surface-soft) !important;
    color: var(--aliyun-link) !important;
}

.admin-menu-section-label {
    color: var(--aliyun-weak) !important;
}

.admin-topbar .admin-menu-panel .admin-menu-item-active {
    background-color: var(--aliyun-link-soft) !important;
    color: var(--aliyun-link) !important;
    font-weight: 700;
}

.admin-topbar .admin-menu-panel .text-red-600 {
    color: var(--aliyun-danger) !important;
}

.admin-mobile-menu-button {
    background: var(--aliyun-primary);
    border: 1px solid rgba(255, 255, 255, 0.2);
    color: #ffffff;
}

.admin-login-page {
    background:
        linear-gradient(90deg, rgba(255, 106, 0, 0.08), rgba(0, 100, 200, 0.05)),
        var(--aliyun-console-bg);
}

.login-form {
    background: var(--aliyun-surface);
    border: 1px solid var(--aliyun-border);
    box-shadow: var(--aliyun-shadow-panel);
}

.login-badge {
    background: var(--aliyun-primary);
    box-shadow: 0 12px 28px rgba(255, 106, 0, 0.24);
}
