:root{--brand:#3268c5;--soft:#edf3fc;--line:#dedede}
button{background:var(--brand)}
.admin .top{position:fixed;inset:0 auto 0 0;width:208px;background:white;border-right:1px solid var(--line);color:#172843;display:block;padding:20px 12px}
.admin .top nav{display:grid;margin-top:16px}
.admin .top a{color:#172843}
.admin .top a[aria-current]{background:var(--soft);color:var(--brand)}
.admin .top+main{margin-left:208px;max-width:none;padding:16px 24px}
.admin h1{font-size:17px}
.admin :is(input,select,button){min-height:36px}
.toolbar,.toolbar label{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.admin .toolbar label{margin:0}
.admin .toolbar input,.admin .toolbar select{width:auto;margin:0}
.table-wrap{overflow:auto}
table{width:100%;border-collapse:collapse;min-width:820px}
th,td{text-align:left;padding:10px;border-bottom:1px solid #ededed}
th{background:#f7f7f7}
.row-actions{white-space:nowrap}
pre{white-space:pre-wrap;overflow-wrap:anywhere;font:inherit}
.login main{max-width:460px;margin:12vh auto 0}
.login-card input,.login-card button{display:block;width:100%;min-height:44px}
.mobile{background:#eef2f7}
.mobile main{max-width:600px;padding:0 0 calc(16px + env(safe-area-inset-bottom))}
.mobile h1{margin:0;padding:calc(16px + env(safe-area-inset-top)) 16px 16px;background:var(--brand);color:white;font-size:20px;overflow-wrap:anywhere}
.mobile .back{display:inline-flex;align-items:center;min-height:44px;margin:0 16px}
.category-tabs,.date-toolbar{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;text-align:center}
.category-tabs{background:white}
.category-tabs a,.date-toolbar :is(a,button){display:grid;place-items:center;min-height:44px;color:var(--brand);text-decoration:none}
.category-tabs a[aria-current]{border-bottom:2px solid var(--brand);font-weight:600}
.date-toolbar{padding:12px 16px;gap:6px}
.date-toolbar :is(a,button){padding:4px 2px;background:white;border:1px solid #a8b6ca;border-radius:8px;font-size:14px}
.date-toolbar [aria-current]{background:var(--soft);border-color:var(--brand);font-weight:600}
.mobile :is(.date-caption,.empty,.pagination){margin:8px 16px}
.mobile :is(section,.notice){margin:12px 16px;border-radius:14px}
.mobile .notice{padding:0}
.notice a{display:block;color:inherit;text-decoration:none;padding:16px}
.notice h2{font-size:17px;margin:8px 0 4px;overflow-wrap:anywhere}
.notice-foot{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;border-top:1px solid #ededed;padding-top:8px;margin-top:10px}
.notice-foot strong{color:var(--brand);margin-left:auto}
.mobile dl>div{display:grid;grid-template-columns:minmax(90px,35%) 1fr;gap:8px;border-bottom:1px solid #ededed;padding:10px 0}
.mobile dl dd{margin:0;min-height:1em}
.mobile main:has(.source-bar){padding-bottom:calc(84px + env(safe-area-inset-bottom))}
.source-bar{position:fixed;inset:auto 0 0;margin:auto;max-width:600px;background:white;border-top:1px solid var(--line);padding:12px 16px calc(12px + env(safe-area-inset-bottom))}
.primary-link{display:grid;place-items:center;min-height:44px;background:var(--brand);color:white;text-decoration:none;border-radius:8px}
.calendar{position:fixed;inset:auto 0 0;margin:0 auto;width:100%;max-width:600px;height:100dvh;max-height:none;border:0;padding:env(safe-area-inset-top) 0 env(safe-area-inset-bottom);overflow:hidden;background:white;color:inherit}
.calendar[open]{display:flex;flex-direction:column;animation:slide-up .2s ease-out}
.calendar::backdrop{background:#14294580}
.calendar button{background:white;color:var(--brand)}
@keyframes slide-up{from{transform:translateY(100%)}to{transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.calendar[open]{animation:none}}
@media(max-width:760px){.admin .top{position:static;width:auto}.admin .top nav{display:flex}.admin .top+main{margin-left:0;padding-inline:16px}}
.calendar-head{display:grid;grid-template-columns:64px 1fr 64px;align-items:center;min-height:56px;text-align:center;border-bottom:1px solid #ededed}
.calendar-head h2{margin:0;font-size:17px}
.calendar-head button{border:0;min-height:48px}
#date-summary{min-height:56px;margin:0;padding:16px}
.weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));text-align:center}
.weekdays{padding:12px;color:#616161;border-bottom:1px solid #ededed}
#calendar-months{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;padding:0 12px}
#calendar-months h3{text-align:center;font-size:17px;margin:16px 0}
.calendar-grid button{border:0;border-radius:0;min-height:48px;padding:0;font-size:16px}
.calendar-grid button.in-range{background:var(--soft)}
.calendar-grid button[aria-pressed=true]{background:var(--brand);color:white;border-radius:6px}
.calendar-grid button:disabled{color:#8b8b8b}
.calendar-grid small{display:block;color:inherit;font-size:10px}
#older-months{width:100%;border:0}
.admin-topbar{margin-left:208px;min-height:56px;padding:0 24px;background:white;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:12px}
.admin-topbar form,.result-tools{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.admin-topbar button{background:white;color:var(--brand);border:1px solid var(--line)}
.admin-topbar+main{margin-left:208px;max-width:none;padding:16px 24px}
.admin-topbar+main>h1{display:none}
.result-tools{justify-content:space-between}
.admin :is(th,td,label,button,input,select){font-size:15px}
.login-card{border-radius:16px;padding:28px;box-shadow:0 12px 36px #14294512}
@media(max-width:760px){.admin-topbar,.admin-topbar+main{margin-left:0;padding-inline:16px}}
.notice-buyer{color:#2457a4}
.notice-winner{color:#087264}
.mobile-detail main>h1{display:none}
.detail-topbar{max-width:600px;margin:auto;padding:env(safe-area-inset-top) 12px 0;display:grid;grid-template-columns:72px 1fr 72px;align-items:center;min-height:56px;background:var(--brand);color:white;text-align:center}
.detail-topbar a{display:flex;align-items:center;min-height:44px;color:white;text-decoration:none}
.detail-topbar strong{font-size:17px}
.project-title{font-size:19px;overflow-wrap:anywhere}
