* {
    box-sizing: border-box;
}

:root {
    --color-primary: #0091b9;
    --color-primary-light: #bae4f0;
    --color-primary-dark: #004e9b;
    --color-accent: #ff6500;
    --color-highlight: #ffd500;
    --color-yes: #1aa36f;
    --color-yes-light: #d9f3e7;
    --color-no-light: #ffe3d1;
    --color-abstain-light: #fff4bf;
    --color-text: #0b1b24;
    --color-surface: #ffffff;
    --color-surface-muted: #f2f7fa;
    --color-border: #c7dde6;
}

body {
    font-family: Arial, sans-serif;
    margin: 0;
    padding: 0;
    background: var(--color-surface-muted);
    color: var(--color-text);
}

.container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 16px;
}

.card {
    background: var(--color-surface);
    border-radius: 8px;
    padding: 16px;
    margin-bottom: 16px;
    box-shadow: 0 2px 6px rgba(0, 78, 155, 0.12);
}

.btn {
    display: inline-block;
    padding: 8px 12px;
    border-radius: 4px;
    border: 1px solid var(--color-primary-dark);
    background: var(--color-primary);
    color: #fff;
    text-decoration: none;
    cursor: pointer;
}

.btn.is-selected {
    box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.18);
}

.btn.is-pending {
    opacity: 0.7;
    pointer-events: none;
}

.btn.secondary {
    background: var(--color-primary-light);
    color: var(--color-primary-dark);
    border-color: var(--color-primary);
}

.btn.danger {
    background: var(--color-accent);
    border-color: var(--color-accent);
}

.btn[data-vote-btn="yes"] {
    background: var(--color-yes);
    border-color: var(--color-yes);
    color: #fff;
}

.btn[data-vote-btn="no"] {
    background: var(--color-accent);
    border-color: var(--color-accent);
    color: #fff;
}

.btn[data-vote-btn="abstain"] {
    background: var(--color-highlight);
    border-color: var(--color-highlight);
    color: #3a2a00;
}

.table {
    width: 100%;
    border-collapse: collapse;
}

.table th,
.table td {
    padding: 8px;
    border-bottom: 1px solid var(--color-border);
    text-align: left;
}

.grid {
    display: grid;
    gap: 16px;
}

.grid.cols-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.pill {
    display: inline-block;
    padding: 4px 8px;
    border-radius: 999px;
    background: var(--color-primary-light);
    margin: 2px;
}

.columns {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
}

.column {
    background: var(--color-surface);
    border: 1px dashed var(--color-border);
    min-height: 140px;
    padding: 8px;
}

.column.is-yes {
    background: var(--color-yes-light);
}

.column.is-no {
    background: var(--color-no-light);
}

.column.is-abstain {
    background: var(--color-abstain-light);
}

.column h4 {
    margin-top: 0;
}

.pill.dragging {
    opacity: 0.6;
}

.tag {
    font-size: 12px;
    background: var(--color-primary-light);
    color: var(--color-primary-dark);
    padding: 2px 6px;
    border-radius: 4px;
}

.notice {
    padding: 8px 12px;
    border-radius: 4px;
    background: var(--color-highlight);
    color: #3a2a00;
    margin-bottom: 12px;
}

.notice.is-hidden {
    display: none;
}

.notice.is-success {
    background: var(--color-primary-light);
    color: var(--color-primary-dark);
}

.notice.is-error {
    background: #ffe0d1;
    color: #7a2a00;
}
