/* CTL public shortcode styles */
.ctl-shortcode { max-width: 540px; margin: 20px auto; font-family: -apple-system, Segoe UI, Roboto, sans-serif; }
.ctl-shortcode h3 { margin: 0 0 8px; }
.ctl-shortcode h4 { margin: 20px 0 8px; }
.ctl-shortcode .ctl-muted { color: #888; font-size: 13px; }

.ctl-notice {
    padding: 12px 16px; border-radius: 6px; font-size: 14px;
    background: #f0f6fc; color: #084298; border: 1px solid #c8dcf0;
    margin: 20px 0;
}
.ctl-notice a { color: #084298; font-weight: 600; }

.ctl-reg-picker { list-style: none; padding: 0; }
.ctl-reg-picker li { margin: 8px 0; }
.ctl-reg-picker a {
    display: block; padding: 12px 16px; background: #fff;
    border: 1px solid #ddd; border-radius: 6px;
    text-decoration: none; color: #1d2327;
}
.ctl-reg-picker a:hover { border-color: #2271b1; background: #f0f6fc; }
.ctl-reg-picker strong { display: block; font-size: 15px; }
.ctl-reg-picker .ctl-muted { display: block; font-size: 12px; margin-top: 2px; }

.ctl-form { background: #fff; padding: 20px; border: 1px solid #ddd; border-radius: 8px; }
.ctl-field { display: block; margin-bottom: 14px; }
.ctl-field-label { display: block; font-weight: 600; font-size: 13px; margin-bottom: 4px; color: #333; }
.ctl-field select, .ctl-field input[type="number"], .ctl-field input[type="file"] {
    width: 100%; padding: 10px; font-size: 15px;
    border: 1px solid #ccc; border-radius: 4px; box-sizing: border-box;
}

.ctl-frac-buttons { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; }
.ctl-frac-btn {
    padding: 12px 6px; font-size: 18px; background: #f0f0f0;
    border: 2px solid #ddd; border-radius: 6px; cursor: pointer;
    font-weight: 600;
}
.ctl-frac-btn:hover { background: #e8e8e8; }
.ctl-frac-active { background: #cfe2ff !important; border-color: #2271b1 !important; color: #084298; }

.ctl-preview {
    text-align: center; padding: 12px; background: #f9f9f9;
    border-radius: 6px; margin-bottom: 14px; font-size: 15px; color: #555;
}
.ctl-preview span { font-weight: bold; font-size: 18px; color: #1d2327; }

.ctl-submit-btn {
    width: 100%; padding: 14px; font-size: 16px; font-weight: 700;
    background: #2271b1; color: white; border: none; border-radius: 6px;
    cursor: pointer;
}
.ctl-submit-btn:hover { background: #135e96; }
.ctl-submit-btn:disabled { opacity: 0.6; cursor: wait; }

.ctl-status-msg { padding: 10px 14px; border-radius: 4px; margin-top: 12px; font-size: 14px; text-align: center; }
.ctl-status-pending { background: #fff3cd; color: #664d03; }
.ctl-status-success { background: #d1e7dd; color: #0f5132; }
.ctl-status-error   { background: #f8d7da; color: #842029; }

/* Bag view */
.ctl-public-stats .ctl-stat { border-radius: 12px; }
.ctl-bag-table { width: 100%; border-collapse: collapse; background: #fff; border: 1px solid #ddd; border-radius: 6px; overflow: hidden; }
.ctl-bag-table th, .ctl-bag-table td { padding: 10px 12px; text-align: left; font-size: 14px; }
.ctl-bag-table th { background: #f5f5f5; font-size: 12px; text-transform: uppercase; color: #555; }
.ctl-bag-table tr { border-bottom: 1px solid #f0f0f0; }
.ctl-bag-table tr:last-child { border-bottom: none; }
.ctl-badge {
    display: inline-block; padding: 2px 8px; border-radius: 3px;
    font-size: 11px; font-weight: bold;
}
.ctl-badge-yes { background: #d1e7dd; color: #0f5132; }
.ctl-badge-no  { background: #f0f0f0; color: #888; }

/* Registration form */
.ctl-register-wrap { max-width: 600px; }
.ctl-register-header {
    background: linear-gradient(135deg, #084298 0%, #2271b1 100%);
    color: #fff; padding: 20px 24px; border-radius: 8px 8px 0 0;
    margin-bottom: 0;
}
.ctl-register-header h3 { color: #fff; margin: 0 0 6px; font-size: 20px; }
.ctl-register-header .ctl-muted { color: rgba(255,255,255,0.85); font-size: 13px; }
.ctl-register-slots {
    margin-top: 10px; padding: 8px 12px;
    background: rgba(255,255,255,0.15); border-radius: 4px;
    font-weight: 600; font-size: 14px; display: inline-block;
}
.ctl-register-slots .ctl-muted { color: rgba(255,255,255,0.75); font-weight: 400; }

.ctl-register-form {
    border-radius: 0 0 8px 8px !important; border-top: none !important;
}
.ctl-register-form h4 {
    margin: 20px 0 12px; padding-bottom: 6px;
    font-size: 14px; color: #333; border-bottom: 2px solid #e5e5e5;
}
.ctl-register-form h4:first-child { margin-top: 0; }
.ctl-register-form input[type="text"],
.ctl-register-form input[type="email"],
.ctl-register-form input[type="password"],
.ctl-register-form input[type="tel"] {
    width: 100%; padding: 10px; font-size: 15px;
    border: 1px solid #ccc; border-radius: 4px; box-sizing: border-box;
}

.ctl-register-success {
    background: #d1e7dd; color: #0f5132;
    padding: 24px; border-radius: 8px; text-align: center;
}
.ctl-register-success h3 { color: #0f5132; margin: 0 0 12px; }

.ctl-notice-error {
    background: #f8d7da; color: #842029;
    border-color: #f5c2c7 !important;
}

/* Public leaderboard - card style */
.ctl-lb { margin: 24px auto; max-width: 720px; font-family: -apple-system, Segoe UI, Roboto, sans-serif; }
.ctl-lb-header {
    background: linear-gradient(135deg, #1d2327 0%, #3c434a 100%);
    color: #fff; padding: 20px 24px; border-radius: 8px 8px 0 0;
}
.ctl-lb-header h3 { color: #fff; margin: 0 0 6px; font-size: 22px; }
.ctl-lb-header .ctl-muted { color: rgba(255,255,255,0.75); font-size: 13px; }

.ctl-lb-card { background: transparent; }
.ctl-lb-card-row {
    display: grid; grid-template-columns: 60px 1fr auto;
    gap: 16px; align-items: center;
    background: #fff; padding: 16px 20px;
    border-left: 1px solid #ddd; border-right: 1px solid #ddd;
    border-bottom: 1px solid #f0f0f0;
}
.ctl-lb-card-row:last-child { border-bottom: 1px solid #ddd; border-radius: 0 0 8px 8px; }
.ctl-lb-card-row.ctl-lb-rank-1 { background: linear-gradient(90deg, #fffce8 0%, #fff 60%); }
.ctl-lb-card-row.ctl-lb-rank-2 { background: linear-gradient(90deg, #f4f4f4 0%, #fff 60%); }
.ctl-lb-card-row.ctl-lb-rank-3 { background: linear-gradient(90deg, #f7ebda 0%, #fff 60%); }

.ctl-lb-rank { font-size: 24px; font-weight: 700; color: #666; text-align: center; }
.ctl-medal { font-size: 32px; }
.ctl-lb-boat-num { font-size: 14px; font-weight: 700; color: #1d2327; }
.ctl-lb-boat-name { font-size: 13px; color: #555; }
.ctl-lb-anglers { font-size: 14px; color: #333; margin-top: 2px; }
.ctl-lb-fish { margin-top: 8px; }
.ctl-lb-fish-pill {
    display: inline-block; margin: 2px 4px 2px 0; padding: 3px 8px;
    background: #e7f6e7; color: #176317; border-radius: 3px;
    font-size: 12px; font-weight: 600;
}
.ctl-lb-total {
    font-size: 22px; font-weight: 700; color: #1d2327;
    text-align: right; min-width: 90px;
}

/* Public leaderboard - table style */
.ctl-lb-table-wrap { background: #fff; border: 1px solid #ddd; border-top: none; border-radius: 0 0 8px 8px; }
.ctl-lb-table { width: 100%; border-collapse: collapse; }
.ctl-lb-table th {
    background: #f5f5f5; padding: 10px 12px; font-size: 12px;
    text-transform: uppercase; color: #555; text-align: left;
    border-bottom: 2px solid #e5e5e5;
}
.ctl-lb-table td { padding: 10px 12px; font-size: 14px; border-bottom: 1px solid #f0f0f0; }
.ctl-lb-table tr:last-child td { border-bottom: none; }

/* --------- CTL v1.3: check-in notice --------- */
.ctl-notice { padding:14px 18px; border-radius:6px; margin:14px 0; font-size:14px; line-height:1.5; }
.ctl-notice-info { background:#e2f0ff; border-left:4px solid #157fcd; color:#0b4a8f; }
