
/* LINE Seed Sans TH global font */
html, body, button, input, textarea, select, a, p, span, small, div, h1, h2, h3, h4, h5, h6, label, table, .swal2-popup {
    font-family: 'line_seed_sans_th', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif !important;
}

:root {
    --app-bg: #f7f8fb;
    --app-surface: #ffffff;
    --app-surface-soft: #f8fafc;
    --app-text: #0f172a;
    --app-muted: #64748b;
    --app-border: rgba(15, 23, 42, .10);
    --app-shadow: 0 18px 55px rgba(15, 23, 42, .08);
    --app-shadow-soft: 0 10px 30px rgba(15, 23, 42, .06);
}

body {
    color: var(--app-text);
    background:
        radial-gradient(circle at 16% 0%, color-mix(in srgb, var(--main) 10%, transparent), transparent 24%),
        radial-gradient(circle at 84% 0%, color-mix(in srgb, var(--sub) 9%, transparent), transparent 24%),
        var(--app-bg) !important;
    overflow-x: hidden;
}

.theme-container { width: min(100% - 32px, 1290px); margin-inline: auto; }
.theme-text { color: var(--app-text); }
.theme-muted { color: var(--app-muted); }
.theme-accent { color: var(--main); }
.theme-accent-strong { color: var(--main-700); }
.theme-gradient-text { background: linear-gradient(135deg, var(--main), var(--sub)); -webkit-background-clip: text; background-clip: text; color: transparent; }
.theme-gradient { background: linear-gradient(135deg, var(--main), var(--sub)); }
.theme-soft { background: color-mix(in srgb, var(--main) 8%, #fff); }
.theme-soft-2 { background: color-mix(in srgb, var(--sub) 8%, #fff); }
.theme-card { background: rgba(255, 255, 255, .94); border: 1px solid var(--app-border); box-shadow: var(--app-shadow); backdrop-filter: blur(16px); }
.theme-card-soft { background: rgba(255, 255, 255, .78); border: 1px solid rgba(15, 23, 42, .08); box-shadow: var(--app-shadow-soft); backdrop-filter: blur(14px); }
.theme-btn-primary { color: #fff !important; background: linear-gradient(135deg, var(--main), var(--sub)); box-shadow: 0 14px 28px color-mix(in srgb, var(--main) 26%, transparent); transition: .18s ease; }
.theme-btn-primary:hover { transform: translateY(-1px); box-shadow: 0 18px 38px color-mix(in srgb, var(--main) 34%, transparent); }
.theme-btn-ghost { color: var(--app-text); background: #fff; border: 1px solid var(--app-border); box-shadow: var(--app-shadow-soft); transition: .18s ease; }
.theme-btn-ghost:hover { color: var(--main-700); border-color: var(--main-200); background: var(--main-50); }
.theme-icon-box { color: var(--main); background: color-mix(in srgb, var(--main) 10%, #fff); border: 1px solid color-mix(in srgb, var(--main) 14%, #e2e8f0); }
.theme-nav { background: rgba(255,255,255,.94); border-bottom: 1px solid rgba(15, 23, 42, .08); box-shadow: 0 10px 26px rgba(15, 23, 42, .05); backdrop-filter: blur(16px); }
.theme-nav-link { color: #475569; border: 1px solid transparent; background: transparent; transition: .18s ease; }
.theme-nav-link:hover { color: var(--main-700); background: var(--main-50); border-color: var(--main-100); }
.theme-nav-link.is-active { color: var(--main-700) !important; background: linear-gradient(135deg, var(--main-50), var(--second-50)); border-color: var(--main-200); box-shadow: 0 10px 24px color-mix(in srgb, var(--main) 14%, transparent); }
.theme-nav-link.is-active i { color: var(--main-700) !important; }
.theme-input { background: #fff; color: var(--app-text); border: 1px solid rgba(15, 23, 42, .10); box-shadow: 0 8px 24px rgba(15, 23, 42, .04); }
.theme-input:focus { outline: none; border-color: var(--main-300); box-shadow: 0 0 0 4px color-mix(in srgb, var(--main) 12%, transparent); }
.theme-dashboard-item { color: #0f172a; background: transparent; border: 1px solid transparent; transition: .18s ease; }
.theme-dashboard-item:hover, .theme-dashboard-item.is-active { background: #fff; border-color: rgba(15,23,42,.08); box-shadow: var(--app-shadow-soft); }
.theme-dashboard-item.is-active .theme-dashboard-icon { color: #fff; background: linear-gradient(135deg, var(--main), var(--sub)); border-color: transparent; box-shadow: 0 14px 28px color-mix(in srgb, var(--main) 24%, transparent); }
.theme-dashboard-icon { color: #475569; background: #fff; border: 1px solid rgba(15,23,42,.10); }
.theme-modal { display: none !important; position: fixed; inset: 0; z-index: 1055; align-items: center; justify-content: center; padding: 18px; background: rgba(15,23,42,.56); backdrop-filter: blur(12px); }
.theme-modal.is-open { display: flex !important; }
.theme-modal-panel { width: min(560px, 100%); background: #fff; border: 1px solid rgba(15,23,42,.10); box-shadow: 0 28px 80px rgba(15,23,42,.24); }
@media (max-width: 1023px) { .theme-container { width: min(100% - 24px, 1290px); } }
