    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
    body {
      font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
      background: #f5f5f5;
      display: flex;
      align-items: center;
      justify-content: center;
      min-height: 100vh;
    }
    .login-card {
      background: #fff;
      border: 1px solid #e5e5e5;
      border-radius: 12px;
      padding: 48px 40px 40px;
      width: 100%;
      max-width: 380px;
      box-shadow: 0 1px 3px rgba(0,0,0,0.04);
    }
    .login-logo {
      font-size: 1.25rem;
      font-weight: 700;
      letter-spacing: 0.04em;
      color: #1a1a1a;
      text-align: center;
      margin-bottom: 32px;
    }
    .login-label {
      display: block;
      font-size: 0.75rem;
      color: #999;
      margin-bottom: 6px;
    }
    .login-input {
      width: 100%;
      padding: 10px 14px;
      border: 1px solid #ddd;
      border-radius: 8px;
      font-size: 0.9375rem;
      font-family: inherit;
      background: #fafafa;
      color: #1a1a1a;
      outline: none;
      transition: border-color 150ms;
    }
    .login-input:focus {
      border-color: #4a7fc4;
      background: #fff;
    }
    .login-btn {
      width: 100%;
      margin-top: 20px;
      padding: 10px;
      border: none;
      border-radius: 8px;
      background: #4a7fc4;
      color: #fff;
      font-size: 0.875rem;
      font-family: inherit;
      font-weight: 500;
      cursor: pointer;
      transition: opacity 150ms;
    }
    .login-btn:hover { opacity: 0.85; }
    .login-btn:disabled { opacity: 0.5; cursor: not-allowed; }
    .login-error {
      margin-top: 14px;
      font-size: 0.8125rem;
      color: #c0392b;
      text-align: center;
      min-height: 1.2em;
    }
