.admin{min-height:100dvh;background:#f7f7f4;color:#121212}.admin-topbar{display:flex;align-items:center;justify-content:space-between;padding:14px 24px;background:#fff;border-bottom:1px solid #e3e3dc}.admin-brand{font-size:20px;font-weight:700;text-decoration:none;color:#121212}.admin-brand span{font-weight:500;color:#5a594e}.logout{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;border:1px solid #d0d0c8;background:#fff;border-radius:999px;padding:8px 16px;font-size:14px;font-weight:600;color:#121212;transition:background-color .2s ease}.logout:hover{background:#f0f0ea}.login-wrap{display:flex;justify-content:center;padding:64px 16px}.login-card{width:100%;max-width:380px;background:#fff;border:1px solid #e3e3dc;border-radius:14px;padding:28px;box-shadow:0 8px 30px rgba(0,0,0,.05)}.login-card h1{font-size:22px;margin:0 0 6px}.login-sub{margin:0 0 20px;color:#5a594e;font-size:14px}.login-card label{display:block;font-size:13px;font-weight:600;margin-bottom:6px}.login-card input{width:100%;padding:11px 12px;font-size:15px;border:1px solid #d0d0c8;border-radius:8px;margin-bottom:16px}.login-card input:focus-visible{outline:3px solid #4a90e2;outline-offset:1px;border-color:#4a90e2}.abtn{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;border:1px solid #121212;background:#fff;color:#121212;border-radius:999px;font-size:15px;font-weight:600;padding:11px 20px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;text-decoration:none;transition:background-color .2s ease,opacity .2s ease}.abtn:hover:not(:disabled){background:#f0f0ea}.abtn.primary{background:#121212;color:#fff;width:100%}.abtn.primary:hover:not(:disabled){background:#000}.abtn.ghost{border-color:#d0d0c8}.abtn.small{min-height:34px;padding:6px 14px;font-size:13px}.abtn:disabled{opacity:.5;cursor:not-allowed}.abtn:focus-visible,.logout:focus-visible{outline:3px solid #4a90e2;outline-offset:2px}.editor{display:grid;grid-template-columns:300px 1fr;grid-gap:24px;gap:24px;max-width:1080px;margin:0 auto;padding:24px}.puzzle-list{background:#fff;border:1px solid #e3e3dc;border-radius:14px;padding:16px;height:-moz-fit-content;height:fit-content;position:-webkit-sticky;position:sticky;top:24px}.list-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.list-head h2{font-size:15px;margin:0;text-transform:uppercase;letter-spacing:.04em;color:#5a594e}.empty-note{color:#8a897e;font-size:14px}.puzzle-list ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.puzzle-list li{display:flex;align-items:stretch;gap:4px;border-radius:8px}.puzzle-list li.active{background:#f0f0ea}.list-item{flex:1 1;text-align:left;background:none;border:none;cursor:pointer;padding:10px;border-radius:8px;display:grid;grid-template-columns:auto auto;grid-template-areas:"date badge" "cats cats";grid-gap:2px 8px;gap:2px 8px;align-items:center;transition:background-color .15s ease}.list-item:hover{background:#f0f0ea}.li-date{grid-area:date;font-weight:700;font-size:14px}.li-badge{grid-area:badge;justify-self:end;font-size:11px;font-weight:700;padding:2px 8px;border-radius:999px;text-transform:uppercase;letter-spacing:.03em}.li-badge.live{background:#a0c35a;color:#1a2a00}.li-badge.future{background:#b0c4ef;color:#102046}.li-badge.past{background:#e3e3dc;color:#5a594e}.li-cats{grid-area:cats;font-size:12px;color:#8a897e;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.li-delete{background:none;border:none;cursor:pointer;color:#b0b0a8;padding:0 8px;border-radius:8px;transition:color .15s ease,background-color .15s ease}.li-delete:hover{color:#c0392b;background:#f7e9e7}.form-area{background:#fff;border:1px solid #e3e3dc;border-radius:14px;padding:24px}.form-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:6px}.form-head h2{font-size:20px;margin:0}.date-field{display:flex;flex-direction:column;gap:4px}.date-field label{font-size:12px;font-weight:600;color:#5a594e}.date-field input{padding:9px 11px;border:1px solid #d0d0c8;border-radius:8px;font-size:14px}.progress-note{color:#5a594e;font-size:13px;margin:8px 0 20px}.cat-block{border:1px solid;border-left:5px solid;border-radius:10px;padding:14px;margin-bottom:14px;background:#fdfdfb}.cat-head{display:flex;align-items:center;gap:8px;margin-bottom:10px}.swatch{width:16px;height:16px;border-radius:4px}.cat-label{font-weight:700;font-size:14px}.cat-label em{font-style:normal;font-weight:500;color:#8a897e}.cat-fields{display:flex;flex-direction:column;gap:8px}.cat-name-input{padding:10px 12px;border:1px solid #d0d0c8;border-radius:8px;font-size:14px;font-weight:600}.word-row{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:8px;gap:8px}.word-input{padding:10px;border:1px solid #d0d0c8;border-radius:8px;font-size:14px;text-align:center}.cat-name-input:focus-visible,.date-field input:focus-visible,.word-input:focus-visible{outline:2px solid #4a90e2;outline-offset:1px;border-color:#4a90e2}.form-actions{display:flex;gap:10px;margin-top:18px;flex-wrap:wrap}.form-actions .abtn.primary{width:auto}.form-error{color:#c0392b}.form-error,.form-ok{font-size:14px;font-weight:600;margin:12px 0 0}.form-ok{color:#2e7d32}@media (max-width:760px){.editor{grid-template-columns:1fr}.puzzle-list{position:static}.word-row{grid-template-columns:repeat(2,1fr)}}