/* The winter workshop shares the calendar's paper, pine and berry palette. */
:root { --ink: #35534f; --muted: #728076; --paper: #f2efe3; --panel: #fffbef; --line: #d6d8c3; --pine: #477267; --cranberry: #a45f76; font-family: "Segoe UI", system-ui, sans-serif; }
body { background: radial-gradient(ellipse at 90% 0, #cedbc877, transparent 48%), #f2efe3; }
button, input, textarea, select { font: inherit; }
button { touch-action: manipulation; transition: background .15s, border-color .15s, transform .15s; }
button:focus-visible, summary:focus-visible { outline: 3px solid #719d91; outline-offset: 3px; }
.admin-shell { width: min(1280px, calc(100% - 44px)); padding: 30px 0 65px; }
.admin-shell > header { min-height: 130px; padding: 23px 29px; color: #fff4db; background: #244940; border: 1px solid #4d7964; border-radius: 21px; box-shadow: 0 5px #d1dac2; align-items: center; }
.admin-brand { display: flex; align-items: center; gap: 18px; }
.admin-brand > svg { flex: none; width: 81px; height: 81px; padding: 6px; border-radius: 23px; background: #f0dfbd; transform: rotate(-5deg); box-shadow: 0 3px #17392f; }
.admin-brand .eyebrow { color: #c9d8b6; font-size: .69rem; }
.admin-brand h1 { font-size: clamp(2rem, 4vw, 3.3rem); line-height: 1.1; letter-spacing: -.035em; }
.admin-shell > header .secondary { color: #e5efd8; background: #356154; border: 1px solid #628b6c; box-shadow: 0 3px #173f36; }
h2 { color: #41685a; font: 700 1.55rem Georgia, serif; letter-spacing: -.02em; }
h3 { color: #527160; font-size: 1.01rem; }
.panel { padding: 27px; background: #fffbef; border: 1px solid #d5d3b9; border-radius: 18px; box-shadow: 0 4px 0 #e2dec9, 0 12px 24px #5d634810; }
.panel > p, .game-catalog > p { line-height: 1.6; color: #68786c; font-size: .9rem; max-width: 98ch; }
.eyebrow { color: #a2707c; font-size: .69rem; }
input, textarea, select { color: #3d594f; background: #fffdf5; border: 1px solid #c3c9b5; border-radius: 10px; }
input:focus, textarea:focus, select:focus { border-color: #699680; box-shadow: 0 0 0 4px #8eaf8630; }
label { color: #516b5c; font-size: .85rem; }
.stack { gap: 20px; }
textarea { min-height: 145px; }
.primary, .secondary, .danger, .tab { min-height: 44px; padding-inline: 17px; border-radius: 10px; font-size: .88rem; font-weight: 750; }
.primary { background: #4c7966; box-shadow: 0 3px #305c4f; }
.primary:hover { background: #618b74; }
.secondary { color: #506e5d; border: 1px solid #c2cbb1; background: #e7ebd9; box-shadow: 0 2px #d0d8bf; }
.secondary:hover { background: #d8e1c7; }
.danger { color: #98576d; border: 1px solid #d9bbc0; background: #f1e2df; }
.tabs { margin: 23px 0 18px; padding-bottom: 10px; gap: 12px; border-bottom: 1px solid #d2d6bd; }
.tab { border: 1px solid #d1d4bd; background: #e7ebdc; }
.tab.active { color: #fef4df; background: #4a7463; border-color: #496d5a; box-shadow: 0 3px #ccd7bc; }
.admin-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 13px; margin: 21px 0 0; }
.admin-summary-card { padding: 17px 19px; border: 1px solid #cdd1b8; border-radius: 14px; background: #e5ead5; }
.admin-summary-card span { display: block; color: #6e7d67; font-size: .73rem; }
.admin-summary-card strong { display: block; margin-top: 5px; color: #566e53; font: 700 1.65rem Georgia, serif; }
.admin-summary-card:nth-child(3) { background: #efe0d7; border-color: #dfcbbf; }.admin-summary-card:nth-child(3) strong { color: #a16c7a; }
#daysPanel { grid-template-columns: 280px minmax(0, 1fr); gap: 22px; }
.game-catalog { padding: 24px 27px; background: #fdf7e7; }
.game-catalog h2 { margin-bottom: 9px; }
.game-catalog > p { margin-bottom: 12px; }
#unassignedGames { padding: 12px 14px; border-left: 3px solid #b69578; border-radius: 4px 10px 10px 4px; background: #f0e8d2; font-size: .8rem; line-height: 1.55; }
.game-test-controls { padding-top: 9px; border-top: 1px solid #e3dbc3; }
.game-test-controls .secondary { color: #fff4de; background: #ad7284; border-color: #9c6278; box-shadow: 0 3px #8b5b70; min-height: 47px; }
.day-list { gap: 10px; top: 18px; }
.day-pick { position: relative; display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 2px 0; padding: 9px; aspect-ratio: 1; color: #5f745d; background: #fff9e8; border: 1px solid #c8cfb6; border-radius: 13px; box-shadow: 0 3px #dbdec7; }
.day-pick-number { text-align: left; font: 700 1.5rem Georgia, serif; }
.admin-art { width: 30px; height: 30px; display: block; overflow: visible; }
.day-pick-status { grid-column: 1 / -1; text-align: left; font-size: .62rem; color: #a0a591; font-weight: 650; }
.day-pick.has-content .day-pick-status { color: #6d8b63; }
.day-pick.has-content::after { display: none; }
.day-pick.active { color: #fff5e3; background: #a4687b; border-color: #895568; box-shadow: 0 3px #825365; }
.day-pick.active .day-pick-status { color: #f0d7d2; }
.day-pick:hover:not(.active) { background: #edf1db; transform: translateY(-2px); }
.editor-heading { padding-bottom: 16px; border-bottom: 1px solid #e6dfc9; }
.editor-heading h2 { margin-bottom: 0; font-size: 1.8rem; }
.save-state { margin-top: 8px; color: #839172; }
.copy-card, .backup-card { padding: 16px; background: #f1eddb; border-color: #dcd3b9; border-radius: 12px; }
.copy-card strong { color: #6d765d; }
.upload-card { background: #f2efdf; border: 1px solid #d9d7bc; border-radius: 14px; }
.upload-card h3 { display: flex; align-items: center; gap: 6px; }
.drop-zone { min-height: 84px; padding: 17px; color: #51765e; background: #e5edda; border: 1px dashed #97b287; border-radius: 10px; }
.drop-zone::before { content: '↑'; font-size: 1.4rem; font-weight: 600; }
.drop-zone strong { font-size: .88rem; }
.drop-zone.drag-active { border-color: #638657; background: #d4e5c2; }
.file-input::file-selector-button { padding: 7px 10px; color: #526e58; border: 1px solid #bfc9a9; border-radius: 7px; background: #e9edda; }
.media-preview { background: #24483d; border-color: #bcc6a4; }
#dayForm > .primary { width: 100%; min-height: 49px; }
.catalog-gallery { margin: 12px 0 17px; border: 1px solid #dcd4bb; border-radius: 12px; background: #fffaf0; }
.catalog-gallery summary { padding: 11px 15px; color: #64795b; font-size: .85rem; font-weight: 750; cursor: pointer; }
.game-gallery { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; padding: 10px 14px 16px; }
.catalog-game { display: flex; flex-direction: column; align-items: start; gap: 6px; min-width: 0; padding: 12px; color: #587263; background: #eef0e2; border: 1px solid #cbd2b7; border-radius: 12px; text-align: left; }
.catalog-game > .admin-art { width: 50px; height: 50px; padding: 3px; background: #fdf5df; border: 1px solid #e5dcc0; border-radius: 12px; }
.catalog-game > strong { font-size: .79rem; line-height: 1.4; }
.catalog-game .catalog-assignment { font-size: .66rem; color: #929b7f; margin-top: auto; }
.catalog-game small { color: #a06d7b; font-weight: 750; font-size: .69rem; }
.catalog-game:hover { border-color: #8daa74; background: #e0e8d0; transform: translateY(-2px); }
.hint, .warning { line-height: 1.55; }.warning { color: #a28055; }
@media (max-width: 950px) { .admin-shell > header { flex-direction: column; align-items: stretch; gap: 20px; }.header-actions { justify-content: start; }.game-gallery { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 760px) { .admin-shell { width: calc(100% - 22px); padding-top: 15px; }.admin-shell > header { padding: 20px; }.admin-brand { gap: 12px; }.admin-brand > svg { width: 65px; height: 65px; }.admin-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }.admin-summary-card { padding: 12px; }.admin-summary-card strong { font-size: 1.4rem; }#daysPanel { grid-template-columns: 1fr; gap: 16px; }.panel { padding: 18px; }.day-list { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 6px; position: static; overflow: visible; }.day-pick { padding: 6px; min-width: 0; }.day-pick .admin-art { display: none; }.day-pick-number { font-size: 1.23rem; }.day-pick-status { font-size: .56rem; }.header-actions > button { flex: 1; min-width: 0; }.catalog-game { padding: 9px; }.game-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }.game-test-controls label { max-width: none; }.copy-controls { flex-wrap: wrap; }.copy-controls select { min-width: 130px; }.copy-controls > button { flex: 1; }.editor-heading { gap: 6px; } }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { transition: none !important; animation: none !important; } }
