/* Shared visual language for the existing Tailwind/Jetstream application. */
body.moga-ui {
    --moga-brand: #2563eb;
    --moga-brand-hover: #1d4ed8;
    --moga-text: #243047;
    --moga-muted: #64748b;
    --moga-border: #dce3ed;
    --moga-surface: #ffffff;
    --moga-background: #f4f6f9;
    --moga-success: #166534;
    --moga-success-bg: #edf9f0;
    --moga-warning: #9a3412;
    --moga-warning-bg: #fff3e9;
    --moga-danger: #b91c1c;
    --moga-radius: 0.5rem;
    --moga-filter-active-bg: #e1effe;
    --moga-filter-active-border: #93b4fb;
    --moga-filter-active-text: #1d4ed8;
    --moga-shadow: 0 1px 3px rgb(15 23 42 / 7%), 0 1px 2px rgb(15 23 42 / 4%);
    color: var(--moga-text);
    background: var(--moga-background);
    font-family: Nunito, ui-sans-serif, system-ui, -apple-system, sans-serif;
    font-size: 0.9375rem;
    line-height: 1.5;
}
.moga-ui > .min-h-screen { background: var(--moga-background); }
.moga-ui h1, .moga-ui h2, .moga-ui h3, .moga-ui h4 { color: var(--moga-text); }
.moga-ui h1, .moga-ui h2 { font-weight: 650; letter-spacing: -0.02em; }
.moga-ui .moga-page-header { background: var(--moga-surface); box-shadow: 0 1px 0 var(--moga-border); }
.moga-ui .moga-page-header > div { max-width: 1600px; margin-inline: auto; padding: 1.5rem 2rem; }
.moga-ui .moga-admin-content > div { padding-top: 1.5rem; padding-bottom: 1.5rem; }
.moga-ui .moga-admin-content > div > div { max-width: 1600px; margin-inline: auto; padding: 0 2rem; }
.moga-ui main > .py-12 { padding-top: 1.5rem; padding-bottom: 1.5rem; }
.moga-ui main :is(.shadow, .shadow-md, .shadow-lg, .shadow-xl) { box-shadow: var(--moga-shadow); }
.moga-ui main :is(div, section, aside, article, form):is(.rounded-lg, .rounded-md, .rounded) { border-radius: var(--moga-radius); }
.moga-ui :is(.border-gray-200, .border-gray-300) { border-color: var(--moga-border); }
.moga-ui :is(.form-input, .form-select, .form-textarea) {
    border-color: var(--moga-border);
    border-radius: var(--moga-radius);
    box-shadow: none;
    color: var(--moga-text);
    font-family: inherit;
    font-size: 0.875rem;
    line-height: 1.5;
}
.moga-ui :is(input.form-input, select.form-select) { min-height: 2.5rem; padding-block: 0.5rem; }
.moga-ui .planning-sources input.text-xl { font-size: 1.25rem; }
.moga-ui textarea.form-textarea { padding: 0.625rem 0.75rem; }
.moga-ui :is(.form-input, .form-select, .form-textarea)::placeholder { color: #8491a4; }
.moga-ui :is(input, textarea)[readonly] { background-color: #f6f8fb; }
.moga-ui :is(.form-input, .form-select, .form-textarea):focus {
    outline: 2px solid rgb(37 99 235 / 20%);
    outline-offset: 1px;
    border-color: var(--moga-brand);
    box-shadow: none;
}
.moga-ui :is(.form-checkbox, .form-radio) { color: var(--moga-brand); border-color: #94a3b8; }
.moga-ui :is(.form-checkbox, .form-radio):focus { box-shadow: 0 0 0 3px rgb(37 99 235 / 18%); }
.moga-ui :where(main, [role="dialog"]) :is(button, a)[class*="px-"][class*="py-"],
.moga-ui .moga-button {
    min-height: 2.5rem;
    border-radius: var(--moga-radius);
    font-size: 0.875rem;
    font-weight: 600;
    letter-spacing: normal;
    text-transform: none;
    transition: background-color 140ms, border-color 140ms, box-shadow 140ms;
}
.moga-ui :is(button, a):is(.bg-blue-600, .bg-indigo-600, .bg-gray-800.text-white),
.moga-ui .moga-button-primary {
    color: #ffffff;
    background-color: var(--moga-brand);
    border-color: var(--moga-brand);
}
.moga-ui :is(button, a):is(.bg-blue-600, .bg-indigo-600, .bg-gray-800.text-white):hover,
.moga-ui .moga-button-primary:hover { background-color: var(--moga-brand-hover); border-color: var(--moga-brand-hover); }
.moga-ui :is(button, a):focus-visible { outline: 2px solid var(--moga-brand); outline-offset: 3px; }
.moga-ui button:disabled, .moga-ui input:disabled, .moga-ui select:disabled { cursor: not-allowed; opacity: 0.5; }
.moga-ui a:is(.text-indigo-600, .text-blue-600, .text-blue-700) { color: var(--moga-brand); }
.moga-ui :is(button, a)[aria-pressed="true"]:not(.moga-person):not([class*="border-transparent"]) { border-color: #93b4fb; }
.moga-ui .moga-filter-bar { padding: 1rem; color: var(--moga-text); }
.moga-ui .moga-filter-toolbar { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 0.75rem; }
.moga-ui .moga-period-filters { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; }
.moga-ui .moga-filter-button {
    min-height: 2.5rem;
    padding: 0.5rem 0.75rem;
    border: 1px solid var(--moga-border);
    border-radius: var(--moga-radius);
    color: var(--moga-text);
    background: var(--moga-surface);
    box-shadow: 0 1px 2px rgb(15 23 42 / 4%);
    font: inherit;
    font-size: 0.875rem;
    font-weight: 600;
    white-space: nowrap;
}
.moga-ui .moga-filter-button:hover { background: #f8faff; }
.moga-ui .moga-filter-button[aria-pressed="true"] {
    color: var(--moga-filter-active-text);
    background: var(--moga-filter-active-bg);
    border-color: var(--moga-filter-active-border);
}
.moga-ui .moga-filter-dates { display: flex; flex: 1 1 22rem; flex-wrap: wrap; align-items: flex-end; gap: 0.75rem; min-width: 0; }
.moga-ui .moga-filter-date-label { display: flex; flex: 1 1 10rem; flex-direction: column; gap: 0.25rem; color: var(--moga-muted); font-size: 0.75rem; min-width: 0; }
.moga-ui .moga-filter-date { width: 100%; }
.moga-ui main table { color: var(--moga-text); }
.moga-ui main thead { background-color: #f6f8fb; }
.moga-ui main th { color: var(--moga-muted); font-size: 0.75rem; font-weight: 650; letter-spacing: 0.035em; }
.moga-ui main :is(td, th) { border-color: var(--moga-border); }
.moga-ui main tbody tr:not([class*="bg-"]):hover { background-color: #f8faff; }
.moga-ui .planning-message-pending, .moga-ui .moga-notice-warning { color: var(--moga-warning); background-color: var(--moga-warning-bg); }
.moga-ui .planning-status-pending { color: var(--moga-warning); }
.moga-ui :is(.text-green-800, .text-green-700) { color: var(--moga-success); }
.moga-ui .bg-green-100 { background-color: var(--moga-success-bg); }
.moga-ui [role="alert"] { border-radius: var(--moga-radius); }
.moga-ui .moga-dialog-surface { border: 1px solid var(--moga-border); border-radius: 0.75rem; }
.moga-ui.moga-document { max-width: 80ch; margin: 2rem auto; padding: 2rem; background: var(--moga-surface); }
.moga-ui.moga-document h1 { font-size: 1.75rem; margin-bottom: 1rem; }
.moga-ui.moga-document :is(h2, h3) { font-size: 1.125rem; margin: 1.5rem 0 0.75rem; }
.moga-ui.moga-document p { margin-block: 0.875rem; }
@media (max-width: 640px) {
    .moga-ui .moga-page-header > div { padding: 1.25rem 1rem; }
    .moga-ui .moga-admin-content > div > div { padding-inline: 1rem; }
    .moga-ui.moga-document { margin: 0; padding: 1.25rem; }
    .moga-ui input.form-input, .moga-ui select.form-select, .moga-ui textarea.form-textarea { font-size: 1rem; }
    .moga-ui .moga-filter-button { min-height: 2.75rem; }
    .moga-ui :where(main, [role="dialog"]) :is(button, a)[class*="px-"][class*="py-"] { min-height: 2.75rem; }
}
@media (prefers-reduced-motion: reduce) { .moga-ui .moga-button { transition: none; } }
