  :root{
    --navy:#151B6B; --navy-dark:#0B1140; --blue:#3B4FD6; --blue-light:#EEF0FD;
    --gray:#6B7280; --border:#E2E4F3; --bg:#F5F6FB; --white:#FFFFFF;
    --danger:#DC2626; --success:#16A34A;
  }
  *{box-sizing:border-box;}
  body{margin:0;font-family:'Montserrat',Arial,sans-serif;background:var(--bg);color:var(--navy-dark);min-height:100vh;}
  header{background:var(--navy);color:#fff;padding:18px 20px;text-align:center;}
  header h1{margin:0;font-size:1.05rem;font-weight:700;}
  header p{margin:4px 0 0;font-size:.75rem;opacity:.75;}
  main{max-width:560px;margin:0 auto;padding:24px 16px;}
  .card{background:var(--white);border-radius:16px;box-shadow:0 10px 30px rgba(21,27,107,.08);padding:26px 24px;margin-bottom:18px;}
  .card h2{margin:0 0 4px;font-size:1rem;font-weight:700;color:var(--navy);}
  .card .sub{margin:0 0 18px;font-size:.8rem;color:var(--gray);line-height:1.4;}
  label{display:block;font-size:.75rem;font-weight:600;color:var(--navy);margin-bottom:6px;margin-top:14px;}
  input[type=password],input[type=text]{width:100%;padding:11px 13px;border:1.5px solid var(--border);border-radius:10px;font-family:inherit;font-size:.9rem;outline:none;}
  input[type=file]{width:100%;padding:10px;border:1.5px dashed var(--border);border-radius:10px;font-family:inherit;font-size:.85rem;background:var(--blue-light);}
  .row{display:flex;gap:10px;margin-top:14px;}
  .row label{display:flex;align-items:center;gap:6px;font-weight:500;font-size:.82rem;margin:0;}
  .btn{width:100%;padding:13px;border:none;border-radius:10px;background:var(--blue);color:#fff;font-family:inherit;font-weight:700;font-size:.88rem;cursor:pointer;margin-top:18px;}
  .btn:disabled{opacity:.5;cursor:not-allowed;}
  .btn.secondary{background:var(--blue-light);color:var(--blue);}
  .msg{border-radius:8px;padding:11px 13px;font-size:.8rem;font-weight:600;margin-top:14px;display:none;}
  .msg.error{background:#FEF2F2;color:var(--danger);border:1px solid #FCA5A5;}
  .msg.success{background:#ECFDF5;color:var(--success);border:1px solid #86EFAC;}
  .msg.info{background:var(--blue-light);color:var(--blue);border:1px solid #C7D2FE;}
  table{width:100%;border-collapse:collapse;margin-top:14px;font-size:.78rem;}
  th,td{text-align:left;padding:6px 8px;border-bottom:1px solid var(--border);}
  th{color:var(--gray);font-weight:600;}
  .status-line{font-size:.78rem;color:var(--gray);margin-top:6px;}
  .progress{height:6px;background:var(--blue-light);border-radius:4px;overflow:hidden;margin-top:12px;display:none;}
  .progress-bar{height:100%;background:var(--blue);width:0%;transition:width .2s;}
