*{box-sizing:border-box;margin:0;padding:0}
body{font-family:Arial,sans-serif;font-size:13px;background:#f4f4f4;color:#111}
header{background:#fff;color:#111;padding:14px 20px;display:flex;align-items:center;gap:12px;border-bottom:3px solid #aa0101;box-shadow:0 2px 6px rgba(0,0,0,.1)}
header h1{font-size:19px;font-weight:700;letter-spacing:.5px;color:#111}
.main{max-width:1440px;margin:0 auto;padding:14px}
.class-tabs{display:flex;gap:3px;flex-wrap:wrap}
.class-tab{padding:7px 15px;background:#ddd;border:none;cursor:pointer;border-radius:6px 6px 0 0;font-size:12px;font-weight:700;color:#444;transition:background .15s;text-transform:uppercase;letter-spacing:.3px}
.class-tab:hover{background:#ccc;color:#111}
.class-tab.active{background:#fff;color:#111;border-bottom:2px solid #aa0101}
.class-tab.teams-tab{background:#333;color:#fff}
.class-tab.teams-tab:hover{background:#444;color:#fff}
.class-tab.teams-tab.active{background:#fff;color:#111;border-bottom:2px solid #aa0101}
.panel{display:none;background:#fff;border-radius:0 6px 6px 6px;padding:14px;box-shadow:0 2px 8px rgba(0,0,0,.1)}
.panel.active{display:block}
.panel-tabs{display:flex;gap:3px;margin-bottom:10px;flex-wrap:wrap}
.panel-tab{padding:5px 11px;background:#eee;border:none;cursor:pointer;border-radius:4px;font-size:11px;color:#555;font-weight:600}
.panel-tab:hover{background:#ddd;color:#111}
.panel-tab.active{background:#111;color:#fff}
.sub-panel{display:none}
.sub-panel.active{display:block}
table{width:100%;border-collapse:collapse;font-size:12px}
th{background:#111;color:#fff;padding:6px 7px;text-align:center;white-space:nowrap;font-weight:700;text-transform:uppercase;font-size:11px;letter-spacing:.3px}
th.left{text-align:left}
td{padding:5px 7px;border-bottom:1px solid #e8e8e8;text-align:center;vertical-align:middle}
td.left{text-align:left}
tr:nth-child(even) td{background:#fafafa}
tr:hover td{background:#fff3f3}
.pts-cell{font-weight:700;color:#111}
.total-cell{font-weight:800;font-size:13px;background:#fff0f0;color:#aa0101}
.round-header{background:#aa0101;color:#fff}
.editable{cursor:pointer}
.editable:hover{background:#fff0f0!important;outline:1px dashed #aa0101}
.editable input{width:50px;border:2px solid #aa0101;border-radius:3px;padding:2px 4px;text-align:center;font-size:12px;font-weight:600;background:#fff8f8}
.btn{padding:6px 13px;border:none;border-radius:4px;cursor:pointer;font-size:12px;font-weight:700;transition:background .15s;text-transform:uppercase;letter-spacing:.3px}
.btn-primary{background:#111;color:#fff}
.btn-primary:hover{background:#333}
.btn-success{background:#aa0101;color:#fff}
.btn-success:hover{background:#c62828}
.btn-warn{background:#555;color:#fff}
.btn-warn:hover{background:#333}
.btn-sm{padding:3px 9px;font-size:11px}
.btn-xs{padding:2px 6px;font-size:10px;border-radius:3px}
.toolbar{display:flex;gap:7px;align-items:center;flex-wrap:wrap;margin-bottom:9px}
.info-badge{background:#f0f0f0;color:#333;padding:2px 8px;border-radius:10px;font-size:11px;border:1px solid #ddd}
.modal{display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.6);z-index:100;justify-content:center;align-items:center}
.modal.open{display:flex}
.modal-box{background:#fff;border-radius:6px;padding:22px;min-width:360px;max-width:720px;max-height:88vh;overflow-y:auto;box-shadow:0 8px 32px rgba(0,0,0,.4);border-top:3px solid #aa0101}
.modal-box h3{margin-bottom:10px;color:#111;font-weight:700}
.modal-close{float:right;background:none;border:none;font-size:20px;cursor:pointer;color:#888;line-height:1}
.new-row-form{display:flex;gap:5px;align-items:center;flex-wrap:wrap;margin-top:9px;padding:8px 10px;background:#f9f9f9;border-radius:4px;border:1px solid #ddd}
.new-row-form input{padding:4px 7px;border:1px solid #ccc;border-radius:3px;font-size:12px}
.saved-badge{background:#e8f5e9;color:#2e7d32;padding:2px 8px;border-radius:10px;font-size:11px;display:none}
.rank-badge{display:inline-block;min-width:22px;height:22px;border-radius:50%;line-height:22px;text-align:center;font-size:11px;font-weight:700;padding:0 4px}
.r1{background:#aa0101;color:#fff}.r2{background:#555;color:#fff}.r3{background:#888;color:#fff}.rn{background:#e0e0e0;color:#333}
.rname-header{font-size:10px;max-width:88px;white-space:normal;text-align:center;line-height:1.2}
/* round entry – shared by all rounds */
.round-section{margin-top:4px}
.round-name-bar{display:flex;align-items:center;gap:6px;margin-bottom:8px;padding:6px 10px;background:#f9f9f9;border-radius:4px;border:1px solid #ddd}
.round-name-bar span{font-size:12px;font-weight:700;color:#333;white-space:nowrap}
.round-name-bar input{flex:1;padding:5px 8px;border:1px solid #ccc;border-radius:3px;font-size:12px;font-weight:600;background:#fff}
.add-entry-bar{display:flex;gap:5px;align-items:center;flex-wrap:wrap;padding:7px 10px;background:#f9f9f9;border-radius:4px;margin-bottom:8px;border:1px solid #ddd}
.add-entry-bar input{padding:4px 6px;border:1px solid #aaa;border-radius:3px;font-size:11px}
.results-table{font-size:12px;width:100%;border-collapse:collapse;margin-bottom:10px}
.results-table th{background:#aa0101;color:#fff;padding:5px 8px;text-align:center;font-size:11px;white-space:nowrap;font-weight:700;text-transform:uppercase;letter-spacing:.3px}
.results-table th.left{text-align:left}
.results-table td{padding:4px 6px;border-bottom:1px solid #e8e8e8;text-align:center;vertical-align:middle}
.results-table td.left{text-align:left;font-weight:600}
.results-table tr:nth-child(even) td{background:#fafafa}
.results-table tr:hover td{background:#fff3f3}
.results-table input[type=number]{width:52px;padding:2px 4px;border:1px solid #ccc;border-radius:3px;font-size:11px;text-align:center;background:#fff}
.results-table input[type=number]:focus{border-color:#aa0101;outline:none;background:#fff8f8}
.results-table input[type=text]{width:90px;padding:2px 4px;border:1px solid #ccc;border-radius:3px;font-size:11px;background:#fff}
.results-table input[type=text].pen{width:76px}
.results-table input[type=text]:focus{border-color:#aa0101;outline:none;background:#fff8f8}
.results-table input[type=text].name-input{width:140px;font-weight:600}
.apply-bar{display:flex;align-items:center;gap:10px;padding:6px 0}
/* teams */
.team-card{border:1px solid #ddd;border-radius:6px;margin-bottom:14px;overflow:hidden;box-shadow:0 1px 4px rgba(0,0,0,.08)}
.team-card-header{background:#111;color:#fff;padding:10px 14px;display:flex;align-items:center;gap:10px;border-bottom:3px solid #aa0101}
.team-name-input{flex:1;background:transparent;border:none;border-bottom:2px solid rgba(255,255,255,.3);color:#fff;font-size:15px;font-weight:700;padding:2px 4px;outline:none;min-width:0}
.team-name-input:focus{border-bottom-color:#aa0101;background:rgba(255,255,255,.08)}
.team-total-big{font-size:20px;font-weight:900;color:#fff;white-space:nowrap}
.team-body table th{font-size:11px;padding:4px 7px}
.team-body table td{font-size:11px;padding:4px 7px}
.team-sum-row td{background:#fff0f0;font-weight:700;font-size:12px;color:#aa0101}
.top3-mark{font-size:10px;color:#aa0101;margin-left:2px}
.note{font-size:11px;color:#555;margin:0 0 10px;padding:5px 9px;background:#fff5f5;border-left:3px solid #aa0101;border-radius:0 4px 4px 0}
.tgold .team-card-header{background:linear-gradient(135deg,#5a3e00,#c9a800);border-bottom-color:#ffd700}
.tsilver .team-card-header{background:linear-gradient(135deg,#333,#777);border-bottom-color:#aaa}
.tbronze .team-card-header{background:linear-gradient(135deg,#3a1800,#8b4513);border-bottom-color:#cd7f32}
.add-member-row{display:flex;gap:5px;align-items:center;padding:6px 10px;background:#f9f9f9;border-top:1px solid #eee}
.add-member-row input{padding:3px 7px;border:1px solid #ccc;border-radius:3px;font-size:12px;flex:1}
.member-name-input{width:100%;border:none;border-bottom:1px solid transparent;background:transparent;font-size:11px;padding:2px 3px;font-style:italic;color:#555;cursor:pointer;min-width:0}
.member-name-input:hover{border-bottom-color:#ccc}
.member-name-input:focus{border-bottom-color:#aa0101;outline:none;background:#fff;font-style:normal;color:#111}
.add-team-section{padding:10px;background:#f9f9f9;border-radius:6px;border:1px dashed #ccc;margin-top:6px;display:flex;gap:8px;align-items:center}
.add-team-section input{padding:5px 9px;border:1px solid #ccc;border-radius:4px;font-size:13px;font-weight:600;width:240px}
@media print{
  .toolbar,.panel-tabs,.new-row-form,.modal,.round-name-bar,
  .add-entry-bar,.apply-bar,.add-member-row,.add-team-section,
  .btn-warn,.btn-xs,.add-round-btns,
  #exportBtn,#resetBtn,#adminBtn,.saved-badge,#storageBadge,
  header button{display:none!important}
  /* override admin-mode !important rules during print */
  body.admin-mode .btn-warn,body.admin-mode .btn-xs,
  body.admin-mode #exportBtn,body.admin-mode #resetBtn,
  body.admin-mode .add-entry-bar,body.admin-mode .round-name-bar,
  body.admin-mode .new-row-form,body.admin-mode .apply-bar,
  body.admin-mode .add-member-row,body.admin-mode .add-team-section,
  body.admin-mode .add-round-btns{display:none!important}
  .panel{display:block!important;box-shadow:none}
  .class-tab{display:none}
}
/* ===== VIEWER MODE (default) — hide all edit controls ===== */
body:not(.admin-mode) .add-entry-bar,
body:not(.admin-mode) .round-name-bar,
body:not(.admin-mode) .new-row-form,
body:not(.admin-mode) .apply-bar,
body:not(.admin-mode) .add-member-row,
body:not(.admin-mode) .add-team-section,
body:not(.admin-mode) .btn-xs,
body:not(.admin-mode) .btn-warn,
body:not(.admin-mode) #exportBtn,
body:not(.admin-mode) #resetBtn{display:none!important}
body:not(.admin-mode) .editable{cursor:default!important;pointer-events:none!important}
body:not(.admin-mode) .results-table input{pointer-events:none!important;background:#f5f5f5!important;cursor:default!important;border-color:#e0e0e0!important}
body:not(.admin-mode) .team-name-input,body:not(.admin-mode) .member-name-input{pointer-events:none!important;cursor:default!important}
.add-round-btns{display:inline-flex;gap:4px;margin-left:6px;vertical-align:middle}
body:not(.admin-mode) .add-round-btns{display:none!important}
/* Admin button styles */
#adminBtn{display:flex;align-items:center;gap:6px;padding:8px 16px;background:#111;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:13px;font-weight:700;letter-spacing:.5px;transition:all .2s}
#adminBtn:hover{background:#333}
#adminBtn.active{background:#aa0101}
#adminBtn.active:hover{background:#c62828}
.cls-mgr-wrap{display:none;position:relative;margin-bottom:8px}
body.admin-mode .cls-mgr-wrap{display:inline-block!important}
.cls-mgr-btn{display:flex;align-items:center;gap:6px;padding:6px 12px;background:#333;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:12px;font-weight:700;letter-spacing:.3px}
.cls-mgr-btn:hover{background:#555}
.cls-mgr-dropdown{display:none;position:absolute;top:calc(100% + 6px);left:0;min-width:260px;background:#fff;border:1px solid #ddd;border-radius:8px;box-shadow:0 6px 24px rgba(0,0,0,.15);z-index:200;padding:10px}
.cls-mgr-dropdown.open{display:block}
.cls-mgr-dropdown h4{font-size:11px;font-weight:700;color:#999;text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px;padding-bottom:6px;border-bottom:1px solid #eee}
.cls-row{display:flex;align-items:center;gap:8px;padding:5px 4px;border-radius:4px}
.cls-row:hover{background:#f9f9f9}
.cls-row label{display:flex;align-items:center;gap:6px;flex:1;font-size:12px;font-weight:600;cursor:pointer}
.cls-row input[type=checkbox]{accent-color:#aa0101;width:14px;height:14px;cursor:pointer}
.cls-row-del{background:none;border:none;color:#ccc;cursor:pointer;font-size:14px;padding:2px 4px;border-radius:3px;line-height:1}
.cls-row-del:hover{background:#fff0f0;color:#aa0101}
.cls-add-row{display:flex;gap:6px;margin-top:10px;padding-top:8px;border-top:1px solid #eee}
.cls-add-row input{flex:1;padding:5px 8px;border:1px solid #ccc;border-radius:4px;font-size:12px}
.cls-add-row input:focus{border-color:#aa0101;outline:none}
.admin-login-box{background:#fff;border-radius:6px;padding:28px;min-width:320px;box-shadow:0 8px 32px rgba(0,0,0,.4);border-top:3px solid #aa0101}
.admin-login-box h3{margin-bottom:16px;color:#111;font-size:16px;font-weight:700}
.admin-login-box input{width:100%;padding:9px 12px;border:1px solid #ccc;border-radius:4px;font-size:14px;margin-bottom:10px;outline:none}
.admin-login-box input:focus{border-color:#aa0101}
.admin-error{color:#aa0101;font-size:12px;margin-bottom:8px;display:none}

/* ===== MOBILE & TABLET ===== */
@media(max-width:768px){
  /* Header: stack vertically, logos scroll horizontally */
  header{flex-direction:column;align-items:flex-start;gap:10px;padding:10px 12px}
  header>div:first-child{gap:10px}
  header h1{font-size:15px}
  header>div:last-child{width:100%;flex-direction:row;flex-wrap:wrap;justify-content:flex-end;gap:6px}
  /* Logos: horizontal scroll strip */
  header>div:nth-child(2){width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:4px}
  header>div:nth-child(2)>div:first-child{display:flex;gap:8px;align-items:center;min-width:max-content;padding:4px 0}
  header>div:nth-child(2)>div:first-child img{height:40px!important}
  /* LR Events main logo smaller */
  header img[alt="LR Events"]{height:52px!important}
  /* Tabs: horizontal scroll */
  .class-tabs{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:4px}
  .class-tab{white-space:nowrap;flex-shrink:0}
  /* Panels */
  .main{padding:8px}
  .panel{padding:10px 8px}
  /* Tables: horizontal scroll */
  .panel table,.results-table{font-size:11px}
  div[style*="overflow-x:auto"]{-webkit-overflow-scrolling:touch}
  /* Team cards */
  .team-total-big{font-size:16px}
  .team-name-input{font-size:13px}
  /* Admin button smaller */
  #adminBtn{padding:6px 10px;font-size:12px}
  #exportKPVBtn,#exportTeamsBtn{padding:6px 8px;font-size:11px}
  /* Modal full width */
  .modal-box,.admin-login-box{min-width:unset;width:92vw}
  /* Cls manager dropdown */
  .cls-mgr-dropdown{min-width:unset;width:92vw}
}
@media(max-width:480px){
  header img[alt="LR Events"]{height:40px!important}
  header h1{font-size:13px}
  .class-tab{padding:5px 10px;font-size:11px}
  table,th,td{font-size:10px}
  th,td{padding:3px 4px}
}
@media print{.no-print{display:none!important}}