:root {
    --polins-selected: #c2e7ff;
    --polins-on-selected: #001d35;
    --polins-surface-radius: 20px;
    --polins-space: 24px;
}

.polins-shell { min-height: 100dvh; }

.polins-appbar .mud-toolbar { gap: 12px; padding-inline: 24px; }

.polins-brand { display: flex; align-items: center; gap: 12px; }
.polins-brand .mud-typography { font-size: 24px; font-weight: 500; letter-spacing: -0.8px; }
.polins-brand-icon {
    display: grid; place-items: center; width: 36px; height: 36px;
    color: var(--mud-palette-primary); background: var(--polins-selected); border-radius: 12px;
}

.polins-drawer.mud-drawer { border: 0; }
.polins-nav { padding: 12px; }
.polins-nav .mud-nav-item { margin-bottom: 4px; }
.polins-nav .mud-nav-link {
    min-height: 48px; padding: 12px 16px; border-radius: 28px;
    transition: background-color 140ms ease, color 140ms ease;
}
.polins-nav .mud-nav-link .mud-nav-link-text { margin-inline-start: 16px; font-size: 14px; }
.polins-nav .mud-nav-link.active:not(.mud-nav-link-disabled) {
    color: var(--polins-on-selected); background: var(--polins-selected); font-weight: 500;
}
.polins-nav .mud-nav-link.active .mud-nav-link-icon { color: inherit; }

.polins-content.mud-container { padding: 12px 28px 40px 12px; }

.polins-shell .mud-button { min-height: 40px; padding-inline: 20px; border-radius: 24px; }
.polins-shell .mud-button-size-small { min-height: 36px; padding-inline: 16px; }
.polins-shell .mud-button:focus-visible,
.polins-shell .mud-icon-button:focus-visible,
.polins-nav .mud-nav-link:focus-visible { outline: 2px solid var(--mud-palette-primary); outline-offset: 3px; }

.polins-list.mud-table, .polins-form.mud-paper {
    border: 1px solid var(--mud-palette-divider-light); border-radius: var(--polins-surface-radius);
}
.polins-list .mud-table-toolbar { height: auto; min-height: 88px; padding: 20px var(--polins-space); gap: 16px; }
.polins-list .mud-table-head .mud-table-cell {
    color: var(--mud-palette-text-secondary); background: var(--mud-palette-surface);
    font-size: 12px; font-weight: 500; padding: 14px var(--polins-space);
}
.polins-list .mud-table-body .mud-table-cell { padding: 18px var(--polins-space); font-size: 14px; overflow-wrap: anywhere; }
.polins-list .mud-table-body .mud-table-cell:first-child { font-weight: 500; }
.polins-list .mud-table-body .mud-table-row:last-child .mud-table-cell { border-bottom: 0; }
.polins-list .mud-table-container { border-radius: 0 0 var(--polins-surface-radius) var(--polins-surface-radius); }

.polins-empty-state { display: flex; flex-direction: column; align-items: center; gap: 16px; padding: 64px 16px; color: var(--mud-palette-text-secondary); }
.polins-empty-state > .mud-icon-root { box-sizing: content-box; padding: 16px; background: var(--mud-palette-background-gray); color: var(--mud-palette-primary); border-radius: 20px; }

.polins-page-title { margin: 8px 4px 24px; }
.polins-form { max-width: 1040px; padding: 32px; }
.polins-form .mud-input-outlined { background: var(--mud-palette-surface); }
.polins-form .mud-input-control > .mud-input-control-input-container > .mud-input-label-outlined { background: var(--mud-palette-surface); }
.polins-form-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 32px; padding-top: 24px; border-top: 1px solid var(--mud-palette-divider-light); }

@media (max-width: 959.98px) {
    .polins-content.mud-container { padding: 12px 20px 32px; }
}
@media (max-width: 599.98px) {
    :root { --polins-space: 16px; --polins-surface-radius: 16px; }
    .polins-appbar .mud-toolbar { padding-inline: 16px; }
    .polins-content.mud-container { padding: 8px 12px 24px; }
    .polins-list .mud-table-toolbar { min-height: 80px; gap: 12px; }
    .polins-list .mud-table-toolbar .mud-typography { font-size: 1.125rem; }
    .polins-list .mud-table-toolbar .mud-button { flex-shrink: 0; padding-inline: 16px; }
    .polins-list .mud-table-body .mud-table-cell { padding-block: 12px; }
    .polins-form { padding: 20px 16px; }
    .polins-page-title { margin-bottom: 20px; font-size: 1.375rem; }
}
@media (prefers-reduced-motion: reduce) {
    .polins-nav .mud-nav-link { transition: none; }
}
