Enhance print layouts with branded headers and fix navigation consistency

- Replace plain print headers with full branded headers including logo
  - Add dynamic tournament-type styling (🎯 4-target,  20-target, 💪 40-target)
  - Remove border lines and optimize spacing for clean print appearance
  - Fix emoji positioning in league championship headers
  - Standardize navigation with proper active button indicators
  - Add missing translation keys for calculator instructions
  - Update print media queries for professional document output

  Print improvements:
  - Logo and branding now appear on printed results
  - Consistent 20px spacing between header and table
  - Clean white background with subtle borders
  - Optimized typography for print readability

  Navigation fixes:
  - Added active button highlighting across all PC pages
  - Consistent navigation order: Dashboard → Tournament → Player Analysis → Archive → Draft →
  Calculator
  - Fixed draft page active indicator

  🤖 Generated with Claude Code

  Co-Authored-By: Claude <noreply@anthropic.com>

  This commit message covers all the major improvements we made:
  - Print layout enhancements with branded headers
  - Navigation standardization and active indicators
  - Translation fixes
  - Visual styling improvements
  - Professional document output optimization
This commit is contained in:
2025-09-20 20:03:44 +02:00
parent 33758e7340
commit c61c1448e4
62 changed files with 45554 additions and 11528 deletions
@@ -0,0 +1,759 @@
{
"tournament": {
"rounds": [
{
"round_number": 1,
"players": [
{
"id": 9,
"name": "Janez Bo\u017ei\u010d",
"enabled": true
},
{
"id": 48,
"name": "Janja Salcman",
"enabled": true
},
{
"id": 4,
"name": "Mateja Pleterski",
"enabled": true
},
{
"id": 21,
"name": "Marko Blimen",
"enabled": true
},
{
"id": 45,
"name": "Lidija Blimen",
"enabled": true
},
{
"id": 1,
"name": "Domen Pleterski",
"enabled": true
}
],
"status": "pending"
},
{
"round_number": 2,
"players": [
{
"id": 44,
"name": "Anka Ka\u010dnik",
"enabled": true
},
{
"id": 12,
"name": "Matej Kvasnik",
"enabled": true
},
{
"id": 5,
"name": "Jo\u017ee Verhnjak",
"enabled": true
},
{
"id": 47,
"name": "Ljuba Mr\u0161ak",
"enabled": true
},
{
"id": 46,
"name": "Tijana \u0160tumpfl",
"enabled": true
},
{
"id": 49,
"name": "Jolanda Verhnjak",
"enabled": true
}
],
"status": "waiting"
},
{
"round_number": 3,
"players": [
{
"id": 17,
"name": "Du\u0161an Onuk",
"enabled": true
},
{
"id": 15,
"name": "Jan Pleterski",
"enabled": true
},
{
"id": 7,
"name": "Branko Poker\u017enik",
"enabled": true
},
{
"id": 20,
"name": "Jo\u017ee Preglav",
"enabled": true
},
{
"id": 11,
"name": "Rado Kefer",
"enabled": true
},
{
"id": 3,
"name": "Ivan Tandler",
"enabled": true
}
],
"status": "waiting"
}
],
"created_at": "2025-09-08T19:23:24.597390",
"total_players": 18,
"total_rounds": 3,
"current_round": 1,
"tournament_type": "4_targets"
},
"results": {
"tournament_id": "2025-09-08T19:23:24.597390",
"tournament_type": "4_targets",
"participants": {
"9": {
"name": "Janez Bo\u017ei\u010d",
"targets": {
"1": {
"shot1": 9,
"shot2": 2,
"shot3": 4,
"shot4": 6,
"shot5": 1
},
"2": {
"shot1": 1,
"shot2": 4,
"shot3": 4,
"shot4": 3,
"shot5": 4
},
"3": {
"shot1": 5,
"shot2": 4,
"shot3": 3,
"shot4": 3,
"shot5": 2
},
"4": {
"shot1": 3,
"shot2": 7,
"shot3": 2,
"shot4": 0,
"shot5": 0
}
},
"total_score": 67,
"completed": true
},
"48": {
"name": "Janja Salcman",
"targets": {
"1": {
"shot1": 6,
"shot2": 10,
"shot3": 0,
"shot4": 6,
"shot5": 5
},
"2": {
"shot1": 0,
"shot2": 9,
"shot3": 5,
"shot4": 4,
"shot5": 7
},
"3": {
"shot1": 8,
"shot2": 2,
"shot3": 8,
"shot4": 0,
"shot5": 1
},
"4": {
"shot1": 1,
"shot2": 4,
"shot3": 3,
"shot4": 5,
"shot5": 1
}
},
"total_score": 85,
"completed": true
},
"4": {
"name": "Mateja Pleterski",
"targets": {
"1": {
"shot1": 6,
"shot2": 10,
"shot3": 1,
"shot4": 1,
"shot5": 3
},
"2": {
"shot1": 3,
"shot2": 4,
"shot3": 6,
"shot4": 2,
"shot5": 10
},
"3": {
"shot1": 1,
"shot2": 10,
"shot3": 8,
"shot4": 5,
"shot5": 5
},
"4": {
"shot1": 9,
"shot2": 4,
"shot3": 9,
"shot4": 6,
"shot5": 3
}
},
"total_score": 106,
"completed": true
},
"21": {
"name": "Marko Blimen",
"targets": {
"1": {
"shot1": 3,
"shot2": 2,
"shot3": 3,
"shot4": 3,
"shot5": 3
},
"2": {
"shot1": 0,
"shot2": 6,
"shot3": 7,
"shot4": 0,
"shot5": 7
},
"3": {
"shot1": 3,
"shot2": 8,
"shot3": 1,
"shot4": 7,
"shot5": 6
},
"4": {
"shot1": 3,
"shot2": 4,
"shot3": 3,
"shot4": 8,
"shot5": 1
}
},
"total_score": 78,
"completed": true
},
"45": {
"name": "Lidija Blimen",
"targets": {
"1": {
"shot1": 8,
"shot2": 3,
"shot3": 8,
"shot4": 7,
"shot5": 7
},
"2": {
"shot1": 3,
"shot2": 0,
"shot3": 5,
"shot4": 7,
"shot5": 4
},
"3": {
"shot1": 7,
"shot2": 8,
"shot3": 0,
"shot4": 7,
"shot5": 3
},
"4": {
"shot1": 2,
"shot2": 10,
"shot3": 2,
"shot4": 9,
"shot5": 0
}
},
"total_score": 100,
"completed": true
},
"1": {
"name": "Domen Pleterski",
"targets": {
"1": {
"shot1": 9,
"shot2": 1,
"shot3": 3,
"shot4": 2,
"shot5": 4
},
"2": {
"shot1": 8,
"shot2": 4,
"shot3": 10,
"shot4": 9,
"shot5": 0
},
"3": {
"shot1": 7,
"shot2": 3,
"shot3": 2,
"shot4": 5,
"shot5": 6
},
"4": {
"shot1": 6,
"shot2": 6,
"shot3": 6,
"shot4": 3,
"shot5": 10
}
},
"total_score": 104,
"completed": true
},
"44": {
"name": "Anka Ka\u010dnik",
"targets": {
"1": {
"shot1": 6,
"shot2": 8,
"shot3": 6,
"shot4": 9,
"shot5": 2
},
"2": {
"shot1": 9,
"shot2": 0,
"shot3": 9,
"shot4": 2,
"shot5": 8
},
"3": {
"shot1": 5,
"shot2": 0,
"shot3": 4,
"shot4": 10,
"shot5": 3
},
"4": {
"shot1": 5,
"shot2": 4,
"shot3": 2,
"shot4": 7,
"shot5": 0
}
},
"total_score": 99,
"completed": true
},
"12": {
"name": "Matej Kvasnik",
"targets": {
"1": {
"shot1": 9,
"shot2": 1,
"shot3": 7,
"shot4": 9,
"shot5": 6
},
"2": {
"shot1": 10,
"shot2": 3,
"shot3": 2,
"shot4": 9,
"shot5": 2
},
"3": {
"shot1": 0,
"shot2": 9,
"shot3": 9,
"shot4": 3,
"shot5": 6
},
"4": {
"shot1": 4,
"shot2": 10,
"shot3": 6,
"shot4": 5,
"shot5": 2
}
},
"total_score": 112,
"completed": true
},
"5": {
"name": "Jo\u017ee Verhnjak",
"targets": {
"1": {
"shot1": 4,
"shot2": 9,
"shot3": 2,
"shot4": 4,
"shot5": 4
},
"2": {
"shot1": 3,
"shot2": 9,
"shot3": 4,
"shot4": 3,
"shot5": 1
},
"3": {
"shot1": 10,
"shot2": 7,
"shot3": 9,
"shot4": 0,
"shot5": 3
},
"4": {
"shot1": 10,
"shot2": 0,
"shot3": 8,
"shot4": 6,
"shot5": 10
}
},
"total_score": 106,
"completed": true
},
"47": {
"name": "Ljuba Mr\u0161ak",
"targets": {
"1": {
"shot1": 7,
"shot2": 10,
"shot3": 4,
"shot4": 2,
"shot5": 9
},
"2": {
"shot1": 1,
"shot2": 9,
"shot3": 2,
"shot4": 7,
"shot5": 0
},
"3": {
"shot1": 9,
"shot2": 8,
"shot3": 6,
"shot4": 5,
"shot5": 7
},
"4": {
"shot1": 9,
"shot2": 9,
"shot3": 10,
"shot4": 0,
"shot5": 2
}
},
"total_score": 116,
"completed": true
},
"46": {
"name": "Tijana \u0160tumpfl",
"targets": {
"1": {
"shot1": 10,
"shot2": 6,
"shot3": 9,
"shot4": 9,
"shot5": 7
},
"2": {
"shot1": 0,
"shot2": 6,
"shot3": 7,
"shot4": 6,
"shot5": 10
},
"3": {
"shot1": 3,
"shot2": 8,
"shot3": 6,
"shot4": 5,
"shot5": 5
},
"4": {
"shot1": 1,
"shot2": 2,
"shot3": 9,
"shot4": 8,
"shot5": 8
}
},
"total_score": 125,
"completed": true
},
"49": {
"name": "Jolanda Verhnjak",
"targets": {
"1": {
"shot1": 8,
"shot2": 0,
"shot3": 9,
"shot4": 6,
"shot5": 7
},
"2": {
"shot1": 4,
"shot2": 4,
"shot3": 6,
"shot4": 4,
"shot5": 8
},
"3": {
"shot1": 0,
"shot2": 9,
"shot3": 3,
"shot4": 4,
"shot5": 5
},
"4": {
"shot1": 2,
"shot2": 2,
"shot3": 0,
"shot4": 0,
"shot5": 0
}
},
"total_score": 81,
"completed": true
},
"17": {
"name": "Du\u0161an Onuk",
"targets": {
"1": {
"shot1": 3,
"shot2": 6,
"shot3": 5,
"shot4": 5,
"shot5": 6
},
"2": {
"shot1": 2,
"shot2": 4,
"shot3": 2,
"shot4": 8,
"shot5": 8
},
"3": {
"shot1": 3,
"shot2": 8,
"shot3": 5,
"shot4": 8,
"shot5": 1
},
"4": {
"shot1": 6,
"shot2": 5,
"shot3": 3,
"shot4": 1,
"shot5": 6
}
},
"total_score": 95,
"completed": true
},
"15": {
"name": "Jan Pleterski",
"targets": {
"1": {
"shot1": 9,
"shot2": 1,
"shot3": 7,
"shot4": 7,
"shot5": 6
},
"2": {
"shot1": 7,
"shot2": 2,
"shot3": 1,
"shot4": 10,
"shot5": 10
},
"3": {
"shot1": 9,
"shot2": 0,
"shot3": 3,
"shot4": 9,
"shot5": 10
},
"4": {
"shot1": 2,
"shot2": 2,
"shot3": 8,
"shot4": 4,
"shot5": 3
}
},
"total_score": 110,
"completed": true
},
"7": {
"name": "Branko Poker\u017enik",
"targets": {
"1": {
"shot1": 6,
"shot2": 1,
"shot3": 8,
"shot4": 9,
"shot5": 1
},
"2": {
"shot1": 6,
"shot2": 3,
"shot3": 10,
"shot4": 6,
"shot5": 0
},
"3": {
"shot1": 8,
"shot2": 6,
"shot3": 8,
"shot4": 0,
"shot5": 6
},
"4": {
"shot1": 2,
"shot2": 0,
"shot3": 10,
"shot4": 5,
"shot5": 6
}
},
"total_score": 101,
"completed": true
},
"20": {
"name": "Jo\u017ee Preglav",
"targets": {
"1": {
"shot1": 4,
"shot2": 1,
"shot3": 9,
"shot4": 2,
"shot5": 1
},
"2": {
"shot1": 0,
"shot2": 8,
"shot3": 0,
"shot4": 6,
"shot5": 5
},
"3": {
"shot1": 5,
"shot2": 7,
"shot3": 3,
"shot4": 1,
"shot5": 9
},
"4": {
"shot1": 4,
"shot2": 7,
"shot3": 3,
"shot4": 1,
"shot5": 1
}
},
"total_score": 77,
"completed": true
},
"11": {
"name": "Rado Kefer",
"targets": {
"1": {
"shot1": 1,
"shot2": 9,
"shot3": 7,
"shot4": 3,
"shot5": 10
},
"2": {
"shot1": 1,
"shot2": 2,
"shot3": 0,
"shot4": 2,
"shot5": 4
},
"3": {
"shot1": 1,
"shot2": 8,
"shot3": 10,
"shot4": 0,
"shot5": 0
},
"4": {
"shot1": 10,
"shot2": 2,
"shot3": 9,
"shot4": 1,
"shot5": 1
}
},
"total_score": 81,
"completed": true
},
"3": {
"name": "Ivan Tandler",
"targets": {
"1": {
"shot1": 5,
"shot2": 0,
"shot3": 9,
"shot4": 5,
"shot5": 7
},
"2": {
"shot1": 6,
"shot2": 0,
"shot3": 0,
"shot4": 1,
"shot5": 0
},
"3": {
"shot1": 4,
"shot2": 9,
"shot3": 5,
"shot4": 7,
"shot5": 3
},
"4": {
"shot1": 0,
"shot2": 5,
"shot3": 8,
"shot4": 5,
"shot5": 4
}
},
"total_score": 83,
"completed": true
}
},
"tournament_finished": true,
"created_at": "2025-09-08T19:23:24.597575",
"finished_at": "2025-09-08T19:23:34.271264"
},
"archived_at": "2025-09-08T19:23:34.271291"
}