:root{--green:#009046;--green-dark:#1c471c;--green-light:#4db257;--green-bg:#ebf6f0;--green-bg-soft:#f5fbf7;--text:#1a2b1a;--text-muted:#5a7a5a;--border:#c8e6d4}*{box-sizing:border-box;margin:0;padding:0}body,html{height:100%}body{font-family:Roboto,system-ui,sans-serif;font-size:16px;line-height:1.6;background-color:var(--green-bg-soft);color:var(--text);-webkit-font-smoothing:antialiased}img{max-width:100%;height:auto;display:block}.home{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;padding:32px 24px}.card{background:#fff;border:1px solid var(--border);border-radius:16px;padding:56px 64px;max-width:480px;width:100%;text-align:center;box-shadow:0 4px 24px rgba(0,144,70,.08);@media (max-width:600px){padding-left:32px;padding-bottom:40px;padding-right:32px;padding-top:40px}}.logo{display:flex;justify-content:center;margin-bottom:40px}.logo img{height:48px;width:auto}.divider{height:1px;background:var(--border);margin:32px 0}.card h1{font-size:20px;font-weight:500;color:var(--text-muted);line-height:1.4;margin-bottom:32px}.card .welcome{font-size:24px;font-weight:700;color:var(--green-dark);line-height:1.3;margin-bottom:32px}.card .subtitle{font-size:14px;color:var(--text-muted);margin-bottom:32px}.btn-admin{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--green);color:#fff;text-decoration:none;font-family:Roboto,system-ui,sans-serif;font-size:15px;font-weight:500;padding:14px 32px;border-radius:8px;border:none;cursor:pointer;transition:background .2s ease,transform .1s ease;width:100%;&:hover{background:var(--green-dark)}&:active{transform:scale(.98)}}.footer-note{margin-top:32px;font-size:12px;color:var(--text-muted);opacity:.7}.upload-card{max-width:560px;text-align:left}.upload-card h1,.upload-detail{text-align:center}.upload-detail{color:var(--text-muted);margin-top:8px}.upload-help{font-size:14px;color:var(--text-muted);margin-bottom:20px}.upload-form{gap:16px}.upload-drop,.upload-form{display:flex;flex-direction:column}.upload-drop{gap:10px;padding:24px;border:2px dashed var(--border);border-radius:12px;background:var(--green-bg-soft);cursor:pointer;color:var(--text-muted);word-break:break-word}.upload-drop,.upload-drop input,.upload-error{font-size:14px}.upload-error{color:#c0392b}.upload-success{color:var(--green-dark);background:var(--green-bg);border-radius:8px;padding:10px 14px;font-size:14px}.upload-form button[disabled]{opacity:.6;cursor:not-allowed}