
.admin-page{min-height:100vh;background:var(--bg);color:var(--text)}
.admin-shell{width:min(100% - 32px,1180px);margin:0 auto;padding:28px 0 70px}
.admin-top{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;margin-bottom:24px}
.admin-top .logo{font-size:1.05rem}
.admin-top-actions{display:flex;gap:10px;flex-wrap:wrap}
.admin-title{font-size:clamp(1.8rem,4vw,2.7rem);margin:16px 0 8px}
.admin-sub{color:var(--muted);max-width:72ch}
.admin-alert{padding:16px 18px;border:1px solid rgba(251,191,36,.38);background:rgba(251,191,36,.10);border-radius:14px;color:var(--text);margin:20px 0}
.admin-alert b{color:#fbbf24}
.admin-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.72fr);gap:20px;align-items:start}
.admin-card{padding:24px;margin-bottom:20px}
.admin-card h2{font-size:1.25rem;margin-bottom:6px}
.admin-card .help{color:var(--muted);font-size:.88rem;margin-bottom:18px}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.field{display:grid;gap:7px}
.field.full{grid-column:1/-1}
.field label{font-size:.84rem;font-weight:700;color:var(--muted)}
.field input,.field textarea,.field select{width:100%;border:1px solid var(--border);background:var(--surface-2);color:var(--text);border-radius:11px;padding:11px 12px;font:inherit;outline:none}
.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--border-strong);box-shadow:0 0 0 3px var(--acc-soft)}
.field textarea{min-height:110px;resize:vertical;line-height:1.55}
.field small{font-size:.76rem;color:var(--muted)}
.admin-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}
.admin-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:0 16px;border-radius:11px;border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;font-weight:700;cursor:pointer;transition:.2s}
.admin-btn:hover{transform:translateY(-2px);border-color:var(--border-strong);box-shadow:0 12px 24px -16px var(--acc)}
.admin-btn.primary{border-color:transparent;background:linear-gradient(120deg,var(--acc),var(--acc-2));color:#04121a}
.admin-btn.danger{color:#fb7185;border-color:rgba(251,113,133,.35)}
.admin-btn.small{min-height:34px;padding:0 11px;font-size:.82rem}
.admin-stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:18px}
.admin-stat{padding:15px;border:1px solid var(--border);background:var(--surface);border-radius:13px}
.admin-stat b{display:block;font-family:var(--font-mono);font-size:1.4rem;color:var(--acc)}
.admin-stat span{color:var(--muted);font-size:.78rem}
.project-editor-list{display:grid;gap:14px}
.project-editor{border:1px solid var(--border);border-radius:15px;padding:17px;background:rgba(255,255,255,.025)}
.project-editor-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}
.project-editor-head b{font-size:1rem}
.project-editor-head span{font-family:var(--font-mono);font-size:.72rem;color:var(--muted)}
.check-row{display:flex;gap:16px;align-items:center;flex-wrap:wrap;margin-top:12px;color:var(--muted);font-size:.86rem}
.check-row label{display:flex;gap:7px;align-items:center;cursor:pointer}
.check-row input{accent-color:var(--acc)}
.copy-link{font-family:var(--font-mono);font-size:.76rem;color:var(--acc);word-break:break-all}
.admin-footer{border-top:1px solid var(--border);padding-top:18px;color:var(--muted);font-size:.83rem;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}
.status-note{min-height:22px;color:var(--acc-3);font-size:.88rem;margin-top:10px}
@media (max-width:900px){.admin-grid{grid-template-columns:1fr}}
@media (max-width:560px){.admin-shell{width:min(100% - 22px,1180px)}.form-grid{grid-template-columns:1fr}.admin-card{padding:18px}.admin-stat-grid{grid-template-columns:1fr 1fr}.admin-stat:last-child{grid-column:1/-1}}


/* ---------- Admin password gate ---------- */
.admin-page:not(.admin-unlocked) .admin-shell{display:none}
.admin-page.admin-unlocked .admin-lock{display:none}
.admin-lock{min-height:100svh;display:grid;place-items:center;padding:24px;background:var(--bg)}
.admin-lock-card{width:min(100%,430px);padding:30px}
.admin-lock-card .logo{margin-bottom:28px}
.admin-lock-card h1{font-size:2rem;margin:0 0 8px}
.admin-lock-help{color:var(--muted);margin:0 0 22px}
.admin-lock-label{display:block;color:var(--muted);font-size:.85rem;font-weight:700;margin-bottom:7px}
.admin-lock-input{width:100%;height:48px;border:1px solid var(--border);background:var(--surface-2);color:var(--text);border-radius:12px;padding:0 14px;font:inherit;outline:none}
.admin-lock-input:focus{border-color:var(--border-strong);box-shadow:0 0 0 3px var(--acc-soft)}
.admin-lock-submit{width:100%;margin-top:14px}
.admin-login-error{min-height:22px;color:#fb7185;font-size:.86rem;margin:10px 0 0}
.admin-lock-back{display:block;color:var(--muted);font-size:.86rem;margin-top:22px;text-align:center}
.admin-lock-back:hover{color:var(--acc)}
