:root { color-scheme: light; --ink:#3a2915; --muted:#7b6241; --line:#f0c77a; --orange:#bd6419; --paper:#fffdf4; --page:#fff7dc; }
* { box-sizing:border-box; }
body { margin:0; min-height:100vh; color:var(--ink); font-family:"Yu Gothic UI","Hiragino Sans","Meiryo",sans-serif; background:linear-gradient(rgba(244,223,173,.72) 1px,transparent 1px),linear-gradient(90deg,rgba(244,223,173,.72) 1px,transparent 1px),var(--page); background-size:24px 24px; }
button,input,select { font:inherit; } button { cursor:pointer; }
.admin-shell { width:min(1120px,calc(100% - 28px)); margin:0 auto; padding:34px 0 56px; }
.admin-header { display:flex; align-items:start; justify-content:space-between; gap:20px; margin-bottom:18px; }.admin-header h1 { margin:0; font-size:clamp(26px,4vw,36px); }.admin-header p { margin:7px 0 0; color:var(--muted); }.admin-header a { padding:9px 13px; border:1px solid var(--line); border-radius:10px; color:var(--ink); background:#fffaf0; font-weight:800; text-decoration:none; white-space:nowrap; }.admin-kicker { color:var(--orange)!important; font-size:11px; font-weight:900; letter-spacing:.12em; }
.admin-card { margin-top:16px; padding:22px; border:1px solid var(--line); border-radius:18px; background:var(--paper); box-shadow:0 12px 30px rgba(128,82,22,.12); }.admin-card h2 { margin:0; font-size:20px; }.admin-card p { color:var(--muted); line-height:1.65; }.admin-section-heading { display:flex; justify-content:space-between; gap:14px; }.secondary { min-height:36px; padding:7px 11px; border:1px solid #d9d2ca; border-radius:9px; color:#6b5a51; background:#fff; font-size:12px; font-weight:800; }
.key-form { display:grid; grid-template-columns:1.35fr .65fr 1fr 1fr auto; align-items:end; gap:10px; margin-top:16px; }.key-form label,.bulk-key-form label,.year-filter { display:grid; gap:5px; color:#5d5752; font-size:12px; font-weight:800; }.key-form input,.key-form select,.bulk-key-form input,.bulk-key-form select,.year-filter select { min-width:0; min-height:40px; padding:8px 9px; border:1px solid #d9d2ca; border-radius:9px; background:#fff; }.key-form button,.bulk-key-form button { min-height:40px; padding:8px 12px; border:0; border-radius:9px; color:#fff; background:#bd6419; font-weight:900; white-space:nowrap; }.new-key { padding:12px; border:2px solid #bd6419; border-radius:10px; color:#7b3300!important; background:#fff0c3; font-size:19px; font-weight:900; letter-spacing:.12em; }.admin-message { min-height:1.5em; }.admin-message.error { color:#a23427; }
.bulk-key-form { display:grid; grid-template-columns:150px 150px auto; align-items:end; gap:10px; margin-top:16px; }.bulk-actions { display:flex; flex-wrap:wrap; gap:8px; margin-top:14px; }.key-list-heading { align-items:end; }.year-filter { grid-template-columns:auto 120px; align-items:center; }
.key-list { display:grid; gap:8px; margin-top:14px; }.key-row { display:grid; grid-template-columns:minmax(150px,.8fr) minmax(230px,1fr) minmax(230px,1fr); align-items:center; gap:12px; padding:11px; border:1px solid #eaded3; border-radius:10px; background:#fffaf4; }.key-row b,.key-row small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.key-row small { margin-top:3px; color:var(--muted); }.key-row button { min-height:30px; padding:5px 8px; border:1px solid #d4a090; border-radius:8px; color:#9b4230; background:#fff; font-size:11px; font-weight:800; }.plan-key { display:grid; grid-template-columns:auto minmax(4.5em,1fr) auto; align-items:center; gap:7px; }.plan-name { color:var(--orange); font-size:12px; font-weight:900; }.key-code { font-family:Consolas,monospace; font-size:17px; font-weight:900; letter-spacing:.08em; }.legacy-key-row { grid-template-columns:minmax(0,1fr) minmax(150px,.5fr) auto; }
@media (max-width:840px) { .key-form { grid-template-columns:1fr 1fr; }.key-form label:first-child,.key-form button { grid-column:1 / -1; }.key-row { grid-template-columns:1fr; }.legacy-key-row { grid-template-columns:minmax(0,1fr) auto; }.legacy-key-row > :nth-child(2) { grid-column:1 / -1; grid-row:2; } }
@media (max-width:600px) { .admin-shell { padding-top:20px; }.admin-header,.admin-section-heading { flex-direction:column; }.bulk-key-form { grid-template-columns:1fr 1fr; }.bulk-key-form button { grid-column:1 / -1; }.year-filter { grid-template-columns:auto minmax(100px,1fr); width:100%; }.plan-key { grid-template-columns:auto 1fr auto; } }
