@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:wght@600;700&display=swap');

:root { --ink:#192326; --muted:#6b7777; --paper:#f7f5ef; --white:#fff; --line:#dfe3dc; --green:#2d6254; --green-dark:#21483e; --yellow:#f0c66a; --red:#9c413c; }
* { box-sizing:border-box; }
body { margin:0; min-height:100vh; color:var(--ink); background:var(--paper); font-family:'DM Sans',sans-serif; }
a { color:inherit; }
.auth-page { display:grid; place-items:center; padding:32px; background:linear-gradient(135deg,#f7f5ef 0%,#e9eee7 100%); }
.auth-shell { display:grid; grid-template-columns:1.05fr .95fr; width:min(960px,100%); min-height:560px; overflow:hidden; background:var(--white); box-shadow:0 24px 70px rgba(31,54,45,.14); }
.intro-panel { position:relative; padding:72px 64px; color:#fff; background:var(--green); overflow:hidden; }
.intro-panel:after { content:''; position:absolute; width:370px; height:370px; right:-150px; bottom:-170px; border:1px solid rgba(255,255,255,.2); border-radius:50%; box-shadow:0 0 0 45px rgba(255,255,255,.05),0 0 0 90px rgba(255,255,255,.04); }
.form-panel { display:flex; flex-direction:column; justify-content:center; padding:64px; }
.eyebrow { margin:0 0 18px; color:var(--yellow); font-size:12px; font-weight:700; letter-spacing:2px; text-transform:uppercase; }
h1,h2 { margin:0; font-family:'Playfair Display',serif; font-weight:700; letter-spacing:0; }
.intro-panel h1 { max-width:420px; font-size:clamp(38px,5vw,64px); line-height:1.02; }
.form-panel h1,.form-panel h2 { font-size:36px; line-height:1.1; }
.intro-copy { max-width:350px; margin:28px 0; color:rgba(255,255,255,.78); font-size:17px; line-height:1.6; }
.seal,.brand-mark,.avatar { display:grid; place-items:center; font-weight:700; }
.seal { width:100px; height:100px; margin-top:66px; border:1px solid rgba(255,255,255,.5); border-radius:50%; color:var(--yellow); font-family:'Playfair Display',serif; font-size:28px; }
.stack { display:grid; gap:12px; margin-top:34px; }
label { font-size:13px; font-weight:700; }
input[type=text],input[type=password],input[type=file] { width:100%; padding:15px 16px; border:1px solid var(--line); border-radius:0; background:#fbfcfa; color:var(--ink); font:inherit; }
input:focus { outline:2px solid var(--yellow); outline-offset:2px; }
.button { display:inline-flex; align-items:center; justify-content:space-between; gap:20px; width:max-content; min-width:175px; padding:14px 18px; border:0; background:var(--green); color:#fff; cursor:pointer; font:600 14px 'DM Sans',sans-serif; }
.button:hover { background:var(--green-dark); }
.muted { color:var(--muted); line-height:1.55; }.small { margin-top:36px; font-size:12px; }.text-link { color:var(--green); font-size:13px; font-weight:700; text-decoration:none; }.text-link:hover { text-decoration:underline; }
.site-header { display:flex; align-items:center; justify-content:space-between; padding:22px max(28px,calc((100% - 1120px)/2)); border-bottom:1px solid var(--line); background:rgba(255,255,255,.65); }
.brand { display:flex; align-items:center; gap:10px; color:var(--ink); font-weight:700; text-decoration:none; }.brand-mark { width:32px; height:32px; background:var(--green); color:#fff; font-family:'Playfair Display',serif; font-size:13px; }
.dashboard-shell { width:min(1120px,calc(100% - 56px)); margin:0 auto; padding:72px 0; }.welcome-row { display:flex; align-items:flex-end; justify-content:space-between; gap:30px; margin-bottom:45px; }.welcome-row h1 { font-size:clamp(38px,5vw,60px); }.count-badge { display:grid; gap:2px; min-width:105px; padding:15px 18px; border-left:4px solid var(--yellow); background:#fff; }.count-badge strong { font-family:'Playfair Display',serif; font-size:28px; }.count-badge span { color:var(--muted); font-size:12px; }
.certificate-list { border-top:1px solid var(--line); }.certificate-row { display:flex; align-items:center; gap:18px; padding:18px 0; border-bottom:1px solid var(--line); }.avatar { flex:0 0 42px; width:42px; height:42px; background:#dbe8df; color:var(--green); font-family:'Playfair Display',serif; font-size:18px; }.certificate-name { display:grid; gap:4px; flex:1; }.certificate-name strong { font-size:15px; }.certificate-name span { color:var(--muted); font-size:12px; }.download-link { color:var(--green); font-size:13px; font-weight:700; text-decoration:none; }.download-link span { margin-left:7px; font-size:18px; }.empty-state,.import-panel { padding:30px; border:1px solid var(--line); background:#fff; }.empty-state h2,.import-panel h2 { font-size:25px; }.alert { margin:24px 0 0; padding:13px 16px; font-size:13px; }.error { color:var(--red); background:#f9e9e7; }.success { color:var(--green-dark); background:#e5f1e8; }.admin-shell { padding-top:58px; }.import-panel { margin-bottom:52px; }.import-panel p { font-size:13px; }.import-form { display:flex; align-items:center; gap:14px; margin-top:22px; }.import-form input { flex:1; }.section-heading { display:flex; align-items:baseline; justify-content:space-between; margin-bottom:15px; }.section-heading h2 { font-size:28px; }code { padding:2px 5px; background:#eef1ec; font-size:12px; }
@media (max-width:700px) { .auth-page { padding:0; }.auth-shell { display:block; min-height:100vh; }.intro-panel { padding:42px 28px 34px; }.intro-panel h1 { font-size:43px; }.intro-copy { margin:20px 0 0; }.seal { display:none; }.form-panel { padding:42px 28px; }.site-header { padding:18px 22px; }.dashboard-shell { width:calc(100% - 44px); padding:45px 0; }.welcome-row { align-items:flex-start; flex-direction:column; margin-bottom:32px; }.certificate-row { align-items:flex-start; }.download-link { margin-left:auto; }.import-form { align-items:stretch; flex-direction:column; }.import-form .button { width:100%; }.admin-auth { display:grid; min-height:100vh; } }
