  * { box-sizing: border-box; margin: 0; padding: 0; }
  body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; background: #f5f5f5; color: #333; }
  .container { max-width: 800px; margin: 0 auto; padding: 20px; }

  /* Nav */
  nav { background: #3366b3; color: #fff; padding: 12px 20px; display: flex; align-items: center; gap: 20px; }
  nav .brand { font-weight: 700; font-size: 18px; }
  nav a { color: rgba(255,255,255,0.85); text-decoration: none; font-size: 14px; cursor: pointer; }
  nav a:hover { color: #fff; }
  nav .spacer { flex: 1; }

  /* Cards */
  .card { background: #fff; border-radius: 8px; padding: 24px; margin-bottom: 16px; box-shadow: 0 1px 3px rgba(0,0,0,0.1); }
  .card h2 { margin-bottom: 16px; font-size: 18px; color: #3366b3; }

  /* Forms */
  label { display: block; font-size: 13px; font-weight: 600; margin-bottom: 4px; color: #555; }
  input, select, textarea { width: 100%; padding: 8px 12px; border: 1px solid #ddd; border-radius: 6px; font-size: 14px; margin-bottom: 12px; }
  textarea { resize: vertical; min-height: 60px; }
  button { padding: 8px 20px; border: none; border-radius: 6px; font-size: 14px; cursor: pointer; font-weight: 600; }
  .btn-primary { background: #3366b3; color: #fff; }
  .btn-primary:hover { background: #2a56a0; }
  .btn-danger { background: #d9534f; color: #fff; }
  .btn-danger:hover { background: #c9302c; }
  .btn-sm { padding: 4px 12px; font-size: 12px; }

  /* Table */
  table { width: 100%; border-collapse: collapse; }
  th { text-align: left; font-size: 12px; text-transform: uppercase; color: #888; border-bottom: 2px solid #eee; padding: 8px 4px; }
  td { padding: 8px 4px; border-bottom: 1px solid #f0f0f0; font-size: 14px; }

  /* Utilities */
  .row { display: flex; gap: 12px; align-items: flex-end; }
  .row > * { flex: 1; }
  .text-right { text-align: right; }
  .text-bold { font-weight: 700; }
  .mb-8 { margin-bottom: 8px; }
  .mt-12 { margin-top: 12px; }
  .hidden { display: none; }
  .msg { padding: 8px 12px; border-radius: 6px; margin-bottom: 12px; font-size: 13px; }
  .msg-err { background: #fdecea; color: #c9302c; }
  .msg-ok { background: #e8f5e9; color: #2e7d32; }
  .inline-form { display: flex; gap: 8px; align-items: flex-end; flex-wrap: wrap; }
  .inline-form > div { min-width: 120px; }
  .btn-secondary { background: #e8edf5; color: #3366b3; }
  .btn-secondary:hover { background: #d0d9ed; }
  .tc-lock-bar { background: #fff8e1; border: 1px solid #f0c040; border-radius: 6px;
    padding: 8px 12px; margin-bottom: 12px; font-size: 13px; display: flex;
    align-items: center; gap: 12px; flex-wrap: wrap; }
  .tc-locked td { color: #999; font-style: italic; }
  tr.tc-editing td input, tr.tc-editing td select { margin: 0; padding: 4px 6px;
    font-size: 13px; width: 100%; }
