*{
box-sizing:border-box;
}

body{
font-family: Arial, Helvetica, sans-serif;
background:#f2f4f7;
margin:0;
}

/* container */

.container{
max-width:900px;
margin:60px auto;
padding:20px;
text-align:center;
}

/* header */

.admin-bar{
background:#5DADE2;
padding:12px 20px;
display:flex;
justify-content:space-between;
align-items:center;
flex-wrap:wrap;
}

.admin-menu a{
color:white;
text-decoration:none;
font-weight:bold;
margin-right:18px;
display:inline-flex;
align-items:center;
gap:6px;
}

.admin-user{
display:flex;
align-items:center;
}

/* buttons */

.button{
display:inline-block;
background:#5DADE2;
color:white;
padding:12px 22px;
text-decoration:none;
border-radius:10px;
font-weight:bold;
margin:6px;
}

.button:hover{
background:#3498DB;
}

.button-red{
background:#e74c3c;
}

.button-red:hover{
background:#c0392b;
}

/* table */

.table-container{
margin-top:30px;
display:flex;
justify-content:center;
padding:0 15px;
}

table{
border-collapse:collapse;
width:100%;
max-width:820px;
background:white;
border-radius:10px;
overflow:hidden;
box-shadow:0 5px 15px rgba(0,0,0,0.1);
}

table th{
background:#5DADE2;
color:white;
padding:12px;
}

table td{
padding:10px;
border-bottom:1px solid #eee;
vertical-align:middle;
}

/* action buttons */

.actions{
display:flex;
flex-direction:column;
align-items:center;
gap:6px;
padding:6px;
}

.actions .button{
padding:6px 12px;
font-size:13px;
width:120px;
}

/* form */

form{
margin-top:30px;
display:flex;
flex-direction:column;
align-items:center;
}

/* inputs */

form input,
form select,
textarea{
padding:12px;
border:1px solid #ccc;
border-radius:8px;
width:100%;
max-width:380px;
margin-bottom:12px;
}

/* form button */

form button{
background:#5DADE2;
color:white;
border:none;
padding:12px 20px;
border-radius:10px;
font-weight:bold;
cursor:pointer;
}

form button:hover{
background:#3498DB;
}

/* MOBILE */

@media (max-width:768px){

.container{
margin:20px auto;
padding:20px;
}

.admin-bar{
padding:10px 15px;
}

table{
font-size:14px;
}

}

/* sector position ball */

.sector-ball{
display:inline-block;
width:18px;
height:18px;
border-radius:50%;
margin-right:6px;
vertical-align:middle;
}

.sector-A{ background:#3498db; }
.sector-B{ background:#2ecc71; }
.sector-C{ background:#f39c12; }
.sector-D{ background:#9b59b6; }
.sector-E{ background:#e74c3c; }

/* competitor name */

.name-last{
font-weight:bold;
}

.name-first{
font-size:14px;
color:#444;
}

/* position column */

.position-cell{
font-weight:bold;
text-align:center;
white-space:nowrap;
}

/* sector divider row */

.sector-row{
font-weight:bold;
text-transform:uppercase;
letter-spacing:1px;
font-size:13px;
}

.sector-row td{
padding:10px 14px;
text-align:left;
border-top:2px solid rgba(0,0,0,0.05);
border-bottom:2px solid rgba(0,0,0,0.05);
}

/* colored sector backgrounds */

.sector-A-row{
border-left:6px solid #3498db;
background:rgba(52,152,219,0.10);
}

.sector-B-row{
border-left:6px solid #2ecc71;
background:rgba(46,204,113,0.10);
}

.sector-C-row{
border-left:6px solid #f39c12;
background:rgba(243,156,18,0.10);
}

.sector-D-row{
border-left:6px solid #9b59b6;
background:rgba(155,89,182,0.10);
}

.sector-E-row{
border-left:6px solid #e74c3c;
background:rgba(231,76,60,0.10);
}

@media (max-width: 768px){
    body{
        margin: 0;
        padding: 0;
    }

    .container{
        width: 100%;
        max-width: 100% !important;
        padding-left: 8px !important;
        padding-right: 8px !important;
        box-sizing: border-box;
    }

    h1{
        font-size: 28px;
        line-height: 1.15;
        text-align: center;
    }

    .meta{
        font-size: 13px;
        line-height: 1.35;
        text-align: center;
    }

    .tabs{
        gap: 6px;
    }

    .tab-btn{
        padding: 8px 12px;
        font-size: 14px;
    }

    .table-wrap{
        width: 100%;
        overflow-x: auto;
        overflow-y: visible;
        -webkit-overflow-scrolling: touch;
    }

    table.matrix{
        min-width: 820px;
        font-size: 14px;
    }

    table.matrix th,
    table.matrix td{
        padding: 6px 8px;
    }

    .left{
        min-width: 170px;
    }

    .section-title{
        font-size: 16px;
    }
}

@media (max-width: 480px){
    .container{
        padding-left: 6px !important;
        padding-right: 6px !important;
    }

    h1{
        font-size: 24px;
    }

    .meta{
        font-size: 12px;
    }

    .tab-btn{
        padding: 7px 10px;
        font-size: 13px;
    }

    table.matrix{
        min-width: 760px;
        font-size: 13px;
    }

    table.matrix th,
    table.matrix td{
        padding: 5px 6px;
    }

    .left{
        min-width: 150px;
    }
}
