.admin-body{min-height:100dvh;display:flex;align-items:center;justify-content:center;background:linear-gradient(180deg,var(--c-bg-deep) 0%,var(--c-bg-mid) 100%)}.admin-page{width:100%;display:flex;align-items:center;justify-content:center;padding:var(--s-5)}.admin-card{width:100%;max-width:640px;padding:var(--s-8) var(--s-6);background:var(--c-card-bg);border:var(--b-gold-dim);border-radius:var(--r-card);text-align:center}.admin-title{font-family:Italiana,serif;font-size:clamp(2.2rem,6vw,3.2rem);color:#ffc542;letter-spacing:.02em;margin-bottom:var(--s-7)}.admin-message{font-family:var(--f-body);font-size:1rem;color:var(--c-cream);line-height:1.6;margin-bottom:var(--s-5)}.admin-message--success{color:var(--c-gold)}.admin-message--error{color:var(--c-cream-muted)}.btn-google{display:inline-flex;align-items:center;justify-content:center;width:100%;max-width:280px;padding:var(--s-3) var(--s-6);min-height:44px;background:transparent;border:var(--b-gold);border-radius:var(--r-card);color:var(--c-gold);font-family:var(--f-body);font-size:.95rem;font-weight:500;letter-spacing:.04em;cursor:pointer;transition:background var(--dur-hover) var(--ease-out),color var(--dur-hover) var(--ease-out),box-shadow var(--dur-hover) var(--ease-out)}.btn-google:hover{background:var(--c-card-hover);color:var(--c-cream);box-shadow:0 0 0 1px var(--c-gold),0 0 24px #d4a93c38}.btn-google:focus-visible{outline:2px solid var(--c-gold);outline-offset:3px}.btn-google:active{transform:scale(.97)}@media (prefers-reduced-motion: reduce){.btn-google{transition:none}}.admin-dashboard{text-align:left}.upload-form{display:flex;flex-direction:column;gap:var(--s-4)}.form-field{display:flex;flex-direction:column;gap:var(--s-2)}.form-field[hidden]{display:none}.form-field label{font-family:var(--f-body);font-size:.85rem;font-weight:500;color:var(--c-gold);letter-spacing:.03em}.field-optional{color:var(--c-cream-muted);font-weight:400}.form-field select,.form-field input[type=text],.form-field input[type=file],.form-field textarea{font-family:var(--f-body);font-size:.95rem;color:var(--c-cream);background:#ffffff08;border:var(--b-gold-dim);border-radius:var(--r-card);padding:var(--s-2) var(--s-3);min-height:44px}.form-field textarea{min-height:140px;resize:vertical}.form-field select:focus-visible,.form-field input:focus-visible,.form-field textarea:focus-visible{outline:2px solid var(--c-gold);outline-offset:2px;border-color:var(--c-gold)}.form-field select:disabled{opacity:.5;cursor:default}.field-inline-add{display:flex;align-items:center;gap:var(--s-2);margin-top:var(--s-2)}.field-inline-add[hidden]{display:none}.field-inline-add input[type=text]{flex:1;min-height:40px}.btn-inline-add{padding:var(--s-2) var(--s-4);min-height:40px;background:transparent;border:var(--b-gold-dim);border-radius:var(--r-card);color:var(--c-gold);font-family:var(--f-body);font-size:.85rem;font-weight:500;cursor:pointer;white-space:nowrap;transition:background var(--dur-hover) var(--ease-out),color var(--dur-hover) var(--ease-out),border-color var(--dur-hover) var(--ease-out)}.btn-inline-add:hover{background:var(--c-card-hover);border-color:var(--c-gold);color:var(--c-cream)}.btn-inline-add:focus-visible{outline:2px solid var(--c-gold);outline-offset:2px}.btn-inline-cancel{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:32px;height:32px;border:1px solid rgba(240,230,210,.3);border-radius:50%;background:transparent;color:var(--c-cream-muted);font-size:.8rem;line-height:1;cursor:pointer;transition:color var(--dur-hover) var(--ease-out),border-color var(--dur-hover) var(--ease-out)}.btn-inline-cancel:hover{color:var(--c-cream);border-color:var(--c-cream)}.btn-inline-cancel:focus-visible{outline:2px solid var(--c-gold);outline-offset:2px}.field-inline-error{font-family:var(--f-body);font-size:.8rem;color:var(--c-cream-muted);margin-top:var(--s-2)}.file-dropzone{position:relative;display:flex;align-items:center;justify-content:center;min-height:96px;padding:var(--s-4);border:2px dashed var(--c-gold-dim);border-radius:var(--r-card);background:var(--c-bg-deep);text-align:center;transition:border-color var(--dur-hover) var(--ease-out),background var(--dur-hover) var(--ease-out)}.file-dropzone.is-dragover{border-color:var(--c-gold);background:var(--c-card-hover)}.file-dropzone__text{font-family:var(--f-body);font-size:.85rem;color:var(--c-cream-muted);pointer-events:none}.file-dropzone__input{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer}@media (prefers-reduced-motion: reduce){.file-dropzone{transition:none}}.multi-file-mode{display:flex;flex-direction:column;gap:var(--s-3)}.radio-option{display:flex;align-items:center;gap:var(--s-2);font-family:var(--f-body);font-size:.9rem;color:var(--c-cream);cursor:pointer}.radio-option input[type=radio]{accent-color:var(--c-gold);width:16px;height:16px;cursor:pointer}.draft-files-list{display:flex;flex-direction:column;gap:var(--s-4)}.draft-file{display:flex;flex-direction:column;gap:var(--s-2);padding:var(--s-3);border:var(--b-gold-dim);border-radius:var(--r-card);background:#ffffff05}.draft-file__header{display:flex;align-items:center;gap:var(--s-2)}.draft-file__name{font-family:var(--f-body);font-size:.85rem;font-weight:500;color:var(--c-gold);word-break:break-all;flex:1}.draft-file__status{font-family:var(--f-body);font-size:.78rem;color:var(--c-cream-muted);white-space:nowrap}.draft-file__remove{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border:1px solid rgba(240,230,210,.3);border-radius:50%;background:transparent;color:var(--c-cream-muted);font-size:.75rem;line-height:1;cursor:pointer;transition:color var(--dur-hover) var(--ease-out),border-color var(--dur-hover) var(--ease-out)}.draft-file__remove:hover{color:var(--c-cream);border-color:var(--c-cream)}.draft-file__remove:focus-visible{outline:2px solid var(--c-gold);outline-offset:2px}.per-file-field__title,.per-file-field__description{font-family:var(--f-body);font-size:.9rem;color:var(--c-cream);background:#ffffff08;border:var(--b-gold-dim);border-radius:var(--r-card);padding:var(--s-2) var(--s-3);min-height:40px}.per-file-field__title:focus-visible,.per-file-field__description:focus-visible{outline:2px solid var(--c-gold);outline-offset:2px;border-color:var(--c-gold)}.draft-banner{display:flex;flex-direction:column;gap:var(--s-3);padding:var(--s-4);margin-bottom:var(--s-6);border:var(--b-gold);border-radius:var(--r-card);background:var(--c-card-hover)}.draft-banner[hidden]{display:none}.draft-banner__text{font-family:var(--f-body);font-size:.9rem;color:var(--c-cream)}.draft-banner__actions{display:flex;gap:var(--s-3)}.draft-banner__actions .btn-google,.draft-banner__actions .btn-back{width:auto;max-width:none;flex:1;margin-top:0;font-size:.875rem}.btn-publish{display:inline-flex;align-items:center;justify-content:center;width:100%;padding:var(--s-3) var(--s-6);min-height:44px;background:transparent;border:var(--b-gold);border-radius:var(--r-card);color:var(--c-gold);font-family:var(--f-body);font-size:.95rem;font-weight:500;letter-spacing:.04em;cursor:pointer;transition:background var(--dur-hover) var(--ease-out),color var(--dur-hover) var(--ease-out),box-shadow var(--dur-hover) var(--ease-out)}.btn-publish:hover{background:var(--c-card-hover);color:var(--c-cream);box-shadow:0 0 0 1px var(--c-gold),0 0 24px #d4a93c38}.btn-publish:focus-visible{outline:2px solid var(--c-gold);outline-offset:3px}.btn-publish:disabled{opacity:.6;cursor:default}.admin-list{margin-top:var(--s-7);padding-top:var(--s-6);border-top:var(--b-gold-dim)}.admin-list__heading{font-family:var(--f-display);font-weight:600;font-size:1.15rem;color:var(--c-cream);margin-bottom:var(--s-3)}.content-items-list{list-style:none}.content-items-list li{display:flex;justify-content:space-between;align-items:baseline;gap:var(--s-3);padding:var(--s-3) 0;border-bottom:1px solid var(--c-gold-dim);font-family:var(--f-body)}.content-items-list li:last-child{border-bottom:none}.content-items-list__title{color:var(--c-cream);font-weight:500}.content-items-list__meta{color:var(--c-cream-muted);font-size:.85rem;white-space:nowrap;text-transform:capitalize}@media (prefers-reduced-motion: reduce){.btn-publish{transition:none}}.admin-manage{margin-top:var(--s-7);padding-top:var(--s-6);border-top:var(--b-gold-dim)}.manage-empty{font-family:var(--f-body);font-size:.85rem;color:var(--c-cream-muted);font-style:italic}.manage-subject{padding:var(--s-3) 0;border-bottom:1px solid var(--c-gold-dim)}.manage-subject:last-child{border-bottom:none}.manage-subject__row{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3)}.manage-subject__name{font-family:var(--f-display);font-weight:600;font-size:1rem;color:var(--c-cream)}.manage-topics{list-style:none;display:flex;flex-direction:column;gap:var(--s-2);margin:var(--s-3) 0 var(--s-2) var(--s-6)}.manage-topic{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);padding:var(--s-2) var(--s-3);border:var(--b-gold-dim);border-radius:var(--r-card);background:#ffffff05}.manage-topic__name{font-family:var(--f-body);font-size:.88rem;color:var(--c-cream-muted)}.manage-trash-btn{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:30px;height:30px;border:1px solid rgba(240,230,210,.3);border-radius:50%;background:transparent;color:var(--c-cream-muted);cursor:pointer;transition:color var(--dur-hover) var(--ease-out),border-color var(--dur-hover) var(--ease-out)}.manage-trash-btn:hover{color:var(--c-cream);border-color:var(--c-cream)}.manage-trash-btn:focus-visible{outline:2px solid var(--c-gold);outline-offset:2px}.manage-trash-btn__icon{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.admin-reorder{margin-top:var(--s-7);padding-top:var(--s-6);border-top:var(--b-gold-dim)}.reorder-tabs,.manage-tabs{display:flex;flex-wrap:wrap;gap:var(--s-3);margin-bottom:var(--s-5)}.reorder-tabs__btn,.manage-tabs__btn{padding:var(--s-2) var(--s-5);min-height:40px;background:transparent;border:var(--b-gold);border-radius:var(--r-card);color:var(--c-gold);font-family:var(--f-body);font-size:.85rem;font-weight:500;letter-spacing:.04em;cursor:pointer;transition:background var(--dur-hover) var(--ease-out),color var(--dur-hover) var(--ease-out)}.reorder-tabs__btn:hover,.manage-tabs__btn:hover{background:var(--c-card-hover)}.reorder-tabs__btn:focus-visible,.manage-tabs__btn:focus-visible{outline:2px solid var(--c-gold);outline-offset:2px}.reorder-tabs__btn.is-active,.manage-tabs__btn.is-active{background:var(--c-gold);color:var(--c-bg-deep)}.reorder-tabs__btn.is-active:hover,.manage-tabs__btn.is-active:hover{background:var(--c-gold)}.reorder-year-panel{display:flex;flex-direction:column;gap:var(--s-6)}.reorder-group__heading{font-family:var(--f-display);font-weight:600;font-size:1rem;color:var(--c-cream);margin-bottom:var(--s-3)}.reorder-list{list-style:none;display:flex;flex-direction:column;gap:var(--s-2)}.reorder-list__empty{font-family:var(--f-body);font-size:.85rem;color:var(--c-cream-muted);font-style:italic}.reorder-item{display:flex;align-items:center;gap:var(--s-3);padding:var(--s-3);border:var(--b-gold-dim);border-radius:var(--r-card);background:#ffffff05;touch-action:none;cursor:grab;-webkit-user-select:none;user-select:none}.reorder-item.is-dragging{cursor:grabbing;border-color:var(--c-gold);opacity:.4}.reorder-item--ghost{position:fixed;pointer-events:none;box-shadow:0 8px 24px #00000073;z-index:1000;cursor:grabbing}.reorder-item--indicator-above{box-shadow:0 -3px 0 0 var(--c-gold)}.reorder-item--indicator-below{box-shadow:0 3px 0 0 var(--c-gold)}.reorder-item__handle{color:var(--c-gold);font-size:1rem;line-height:1;flex-shrink:0}.reorder-item__icon-svg{width:20px;height:20px;color:var(--c-gold);flex-shrink:0;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}.reorder-item__title{font-family:var(--f-body);font-size:.9rem;color:var(--c-cream);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.reorder-list__status{font-family:var(--f-body);font-size:.78rem;margin-top:var(--s-2);min-height:1.2em}.reorder-list__status--saved{color:var(--c-gold)}.reorder-list__status--error{color:var(--c-cream-muted)}@media (prefers-reduced-motion: reduce){.reorder-tabs__btn,.manage-tabs__btn,.btn-inline-add,.btn-inline-cancel,.manage-trash-btn{transition:none}}
