:root{font-family:Segoe UI,Arial,sans-serif;color:#202428;background:#f4f6f8}*{box-sizing:border-box}body{margin:0}header{background:#17324d;color:white;padding:1rem 2rem;display:flex;gap:2rem;align-items:center;flex-wrap:wrap}.brand{font-size:1.35rem;font-weight:700;color:white;text-decoration:none}nav{display:flex;gap:1rem;align-items:center;flex-wrap:wrap}nav a,.link{color:white;background:none;border:0;text-decoration:none;cursor:pointer;font:inherit;padding:0}main{max-width:1400px;margin:1.5rem auto;padding:0 1rem}footer{text-align:center;padding:2rem;color:#667}h1{margin-top:0}.card{background:white;border:1px solid #d7dde3;border-radius:.4rem;padding:1rem;margin-bottom:1rem;box-shadow:0 1px 2px #0001}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem}.field{margin-bottom:.9rem}.field label{display:block;font-weight:600;margin-bottom:.25rem}input,select,textarea{width:100%;padding:.55rem;border:1px solid #9da8b3;border-radius:.25rem;background:white}input[type=checkbox]{width:auto}button,.button{display:inline-block;background:#1769aa;color:white;border:0;border-radius:.3rem;padding:.58rem .9rem;text-decoration:none;cursor:pointer}.danger{background:#a82727}.secondary{background:#5a6875}table{width:100%;border-collapse:collapse;background:white}th,td{text-align:left;padding:.55rem;border-bottom:1px solid #dde2e7;vertical-align:top}th{background:#e9eef3}.tablewrap{overflow:auto}.validation-summary-errors,.field-validation-error{color:#a40000}.notice{padding:.8rem;border-radius:.3rem;margin-bottom:1rem}.good{background:#dff3e5}.bad{background:#f8dddd}.actions{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}.muted{color:#68727c}.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.status{font-weight:700}@media(max-width:700px){header{padding:1rem}th,td{white-space:nowrap}}
[hidden]{display:none!important}.score-discipline-heading{margin:.5rem 0 1rem;padding:.75rem 1rem;background:#eef4f9;border-left:4px solid #1769aa;border-radius:.25rem}.score-discipline-heading p{margin:.35rem 0 0}

.center{text-align:center;white-space:nowrap}
.standings-table{min-width:960px;table-layout:fixed}
.standings-table th,.standings-table td{vertical-align:middle}
.standings-table .standings-shooter{width:14%}
.standings-table .standings-discipline{width:12%}
.standings-table .standings-category{width:11%}
.standings-table .standings-team{width:16%}
.standings-table .standings-matches{width:8%}
.standings-table .standings-average{width:10%}
.standings-table .standings-aggregate{width:10%}
.standings-table .standings-tens{width:7%}
.standings-table .standings-qualified{width:12%}

.results-section{margin-top:2rem}
.team-standings-note{max-width:1000px;margin-top:-.35rem}
.team-standings-table{min-width:920px;table-layout:fixed}
.team-standings-table th,.team-standings-table td{vertical-align:middle}
.team-standings-table .team-rank{width:6%}
.team-standings-table .team-name{width:22%}
.team-standings-table .team-conference{width:13%}
.team-standings-table .team-division{width:13%}
.team-standings-table .team-matches{width:10%}
.team-standings-table .team-average{width:11%}
.team-standings-table .team-aggregate{width:13%}
.team-standings-table .team-handicaps{width:12%}

/* Password visibility control */
.password-control{position:relative}
.password-control input{padding-right:3rem}
.password-control input::-ms-reveal,.password-control input::-ms-clear{display:none}
.password-toggle{position:absolute;right:.2rem;top:50%;transform:translateY(-50%);display:inline-flex;align-items:center;justify-content:center;width:2.45rem;height:2.35rem;padding:0;background:transparent;color:#455463;border:0;border-radius:.25rem;line-height:1}
.password-toggle:hover{background:#edf2f6;color:#17324d}
.password-toggle:focus-visible{outline:2px solid #1769aa;outline-offset:1px}
.password-icon{width:1.25rem;height:1.25rem;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}
.password-toggle[aria-pressed="false"] .password-icon-hide{display:none}
.password-toggle[aria-pressed="true"] .password-icon-show{display:none}
.password-visibility-help{margin:.2rem 0 .9rem;color:#68727c;font-size:.92rem}

/* SQL-backed active-session administration */
.page-title-actions h1{margin:0 auto 0 0}
.session-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.8rem;margin-bottom:1rem}
.session-summary-card{background:white;border:1px solid #d7dde3;border-radius:.4rem;padding:1rem;box-shadow:0 1px 2px #0001;display:flex;flex-direction:column;gap:.2rem}
.session-summary-card strong{font-size:1.7rem;color:#17324d;font-variant-numeric:tabular-nums}
.session-summary-card span{color:#5f6a75}
.session-explanation p{margin:.35rem 0}
.session-filters{padding:.8rem 1rem}
.session-filters label{display:inline-flex;align-items:center;gap:.4rem}
.auto-refresh-label{margin-left:auto}
.session-table{min-width:1320px}
.session-table th,.session-table td{vertical-align:middle}
.session-table td:first-child{min-width:190px}
.session-table td:nth-child(4),.session-table td:nth-child(5){min-width:175px}
.session-table td:nth-child(6){min-width:140px}
.session-table td:last-child{min-width:190px}
.session-status{display:inline-block;border-radius:999px;padding:.25rem .55rem;font-weight:700;font-size:.86rem;white-space:nowrap}
.session-online{background:#dff3e5;color:#176b32}
.session-idle{background:#fff0c7;color:#775400}
.session-inactive{background:#e7ebef;color:#4d5965}
.session-revoked{background:#f8dddd;color:#8e1d1d}
.session-ended{background:#eceff2;color:#5c6570}
.current-session-row{box-shadow:inset 4px 0 0 #1769aa}
.current-session-label{display:inline-block;margin-left:.35rem;padding:.15rem .4rem;border-radius:.25rem;background:#dcecf8;color:#154d78;font-size:.78rem;font-weight:700}
.session-ip,.session-path{font-family:Consolas,"Courier New",monospace;font-size:.9rem}
.session-path{max-width:220px;overflow-wrap:anywhere}
.inline-form{display:inline-block;margin:.15rem .2rem .15rem 0}
.compact-button{padding:.4rem .55rem;font-size:.88rem}
@media(max-width:700px){.auto-refresh-label{margin-left:0}.session-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
