:root{--wine:#741333;--wine-deep:#4d0b22;--wine-soft:#9b4763;--cream:#faf6f1;--blush:#f2e5e3;--paper:#fffdfa;--olive:#526d20;--lime:#dce79c;--ink:#392c30;--line:#decfcb}
*{box-sizing:border-box}body{margin:0;background:linear-gradient(145deg,var(--blush),var(--cream) 45%);color:var(--ink);font:17px/1.55 Arial,sans-serif}.admin{max-width:1220px;margin:auto;padding:42px 24px}.top{display:flex;justify-content:space-between;align-items:center;gap:25px;padding:4px 2px}.top p,.kicker{margin:0;color:var(--olive);font-size:.78rem;font-weight:800;letter-spacing:.18em;text-transform:uppercase}.top h1,h1,h2{font-family:Georgia,'Times New Roman',serif;color:var(--wine-deep)}h1{font-size:clamp(2.4rem,5vw,4.5rem);line-height:1;margin:.18em 0}.top a,a{color:var(--wine);font-weight:700;text-underline-offset:4px}.panel{background:rgba(255,253,250,.96);padding:clamp(24px,4vw,42px);margin:25px 0;border:1px solid var(--line);border-radius:18px;box-shadow:0 18px 55px rgba(77,11,34,.08)}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.card{padding:25px;background:var(--paper);border:1px solid var(--line);border-top:4px solid var(--wine);border-radius:13px}.card strong{font:700 2.3rem Georgia,serif;color:var(--wine);display:block}button{background:var(--wine);color:#fff;padding:12px 18px;border:0;border-radius:9px;font:700 .95rem Arial,sans-serif;cursor:pointer;transition:background .2s,transform .2s}button:hover{background:var(--olive);transform:translateY(-1px)}label{display:grid;gap:7px;font-weight:bold;margin:14px 0}input,textarea,select{padding:12px 13px;border:1px solid #bda9ad;border-radius:8px;background:#fff;font:inherit;width:100%}input:focus,textarea:focus,select:focus{outline:3px solid rgba(116,19,51,.14);border-color:var(--wine)}table{border-collapse:collapse;width:100%;margin-top:18px}th{background:var(--wine-deep);color:#fff}th,td{text-align:left;padding:12px;border-bottom:1px solid var(--line);vertical-align:top}.success{background:#e5efd4;color:#344916;padding:13px;border-left:4px solid var(--olive)}.error{background:#f5dadd;color:#761b2d;padding:13px;border-left:4px solid var(--wine)}.inline{display:flex;align-items:center;gap:8px}.inline input{width:auto}.compact{display:inline-block;margin-left:8px}.compact button{padding:6px 9px}.badge{display:inline-block;padding:5px 9px;border-radius:20px;font-weight:bold}.badge.active{background:#e5efd4;color:#344916}.badge.inactive{background:#eee;color:#666}
.login-page{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at top right,#fff 0,var(--blush) 36%,#ead8d8 100%)}.login{width:min(610px,100%);padding:25px}.login .panel{padding:clamp(30px,6vw,55px)}.admin-brand{display:flex;align-items:center;gap:16px;margin-bottom:38px}.admin-brand img{width:74px;height:70px;object-fit:contain;background:#fff;border-radius:10px}.admin-brand strong{display:block;font:italic 500 2.25rem/1 Georgia,serif;color:var(--wine)}.admin-brand small{display:block;margin-top:6px;color:#6b5b60}.separation{border-top:1px solid var(--line);padding-top:18px;margin-top:28px;color:#75676b}
.login-page{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at top right,#fff 0,var(--blush) 36%,#ead8d8 100%)}.login{width:min(610px,100%);padding:25px}.login .panel{padding:clamp(30px,6vw,55px)}.admin-brand{display:flex;align-items:center;gap:16px;margin-bottom:38px}.admin-brand img{width:74px;height:70px;object-fit:contain;background:#fff;border-radius:10px}.admin-brand strong{display:block;font:italic 500 2.25rem/1 Georgia,serif;color:var(--wine)}.admin-brand small{display:block;margin-top:6px;color:#6b5b60}.totp-panel{max-width:540px;margin:auto}.totp-panel h1{font-size:clamp(2.65rem,8vw,4.35rem);overflow-wrap:normal;word-break:normal;margin:.15em 0 .35em}.totp-panel>p:not(.kicker){max-width:430px;color:#66575c}.totp-panel form{margin-top:28px}.totp-input{font-size:1.65rem;letter-spacing:.42em;text-align:center;font-weight:700;padding-left:calc(13px + .42em)}.input-help{display:block;margin:-6px 0 18px;color:#776a6e}.totp-panel button{width:100%;margin-top:4px}.separation{border-top:1px solid var(--line);padding-top:18px;margin-top:28px;color:#75676b}
@media(max-width:760px){body{font-size:16px}.grid{grid-template-columns:1fr}.top{align-items:flex-start;flex-direction:column}.panel{overflow:auto;border-radius:12px}.admin{padding:24px 14px}th,td{padding:9px}.admin-brand strong{font-size:1.85rem}}
