:root {
  --page:#edeae4;
  --white:#fff;
  --card:#f5f2ed;
  --dark:#111110;
  --mid:#3d3d3a;
  --light:#6b6b66;
  --green:#2d5045;
  --green-md:#3a6659;
  --green-lt:#d8e4dc;
  --divider:#ccc8be;
  --radius:16px;
  --serif:'Playfair Display', Georgia, serif;
  --sans:'Lato', system-ui, sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:var(--sans);background:radial-gradient(circle at top,#f8f4ef 0,var(--page) 42%,#e2ddd4 100%);color:var(--dark)}
button,input,textarea{font:inherit}
.hidden{display:none!important}
.login-shell{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}
.login-card,.admin-card{width:min(100%,760px);background:rgba(255,255,255,.88);border:1px solid rgba(204,200,190,.9);border-radius:24px;padding:34px 28px;box-shadow:0 24px 60px rgba(17,17,16,.08);backdrop-filter:blur(14px)}
.brand{font-family:var(--serif);font-size:30px;color:var(--dark);margin-bottom:8px}
h1{font-family:var(--serif);font-size:clamp(30px,6vw,42px);line-height:1.05;margin-bottom:18px}
h1 em{font-style:italic;color:var(--green)}
.field-label{display:block;font-size:10px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--light);margin-bottom:8px}
.login-input,.html-input,.result-output{width:100%;border:1.5px solid var(--divider);border-radius:12px;background:#fff;padding:14px 16px;outline:none}
.login-input:focus,.html-input:focus,.result-output:focus{border-color:var(--green);box-shadow:0 0 0 4px rgba(45,80,69,.08)}
.pin-input{font-size:24px;font-weight:900;letter-spacing:.22em;text-align:center}
.invite-note{margin-bottom:16px;padding:12px 14px;border-radius:12px;background:var(--card);border:1px solid var(--divider);color:var(--mid);line-height:1.5}
.btn-main,.btn-sub,.lock-btn{cursor:pointer}
.btn-main{background:var(--green);color:#fff;border:none;border-radius:12px;padding:14px 18px;font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}
.btn-main:hover{background:var(--green-md)}
.btn-sub,.lock-btn{background:transparent;border:1.5px solid var(--divider);border-radius:12px;padding:10px 14px;color:var(--light);font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase}
.auth-actions,.admin-form{display:grid;gap:14px}
.error{min-height:22px;margin-top:14px;color:#8b3030;font-size:13px;font-weight:700}
.topbar{max-width:1100px;margin:0 auto;padding:18px 16px 0;display:flex;justify-content:flex-end}
.app,.admin-shell{padding-bottom:40px}
.plan-shell{max-width:1100px;margin:0 auto;padding:16px}
.plan-frame{width:100%;min-height:calc(100vh - 72px);border:none;border-radius:20px;background:#fff;box-shadow:0 24px 60px rgba(17,17,16,.08)}
.admin-card{margin:16px auto 40px}
.html-input{min-height:340px;resize:vertical;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:13px;line-height:1.55}
.result-card{margin-top:20px;padding:18px;background:var(--card);border-radius:16px;border:1px solid var(--divider)}
.result-output{min-height:92px;resize:none;font-size:13px;line-height:1.5;margin-bottom:12px}
@media (max-width:640px){
  .login-card,.admin-card{padding:28px 20px}
  .pin-input{font-size:22px}
}
