/*
 * TVK Lawyer Integration — Public Stylesheet
 * ===========================================
 * Styles for [tvk_lawyer_register] and [tvk_lawyer_status] shortcodes.
 * Loaded only on pages that contain these shortcodes.
 *
 * Design tokens inherit from the Astra child-theme :root custom properties
 * where available, with local fallbacks.
 */

/* ==========================================================================
   Shared wrapper
   ========================================================================== */

.tvk-register-wrap,
.tvk-status-widget {
    max-width: 560px;
    margin:    0 auto 32px;
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    color:     var(--tvk-color-text, #2c3e50);
}

/* ==========================================================================
   Alerts
   ========================================================================== */

.tvk-alert {
    padding:       12px 16px;
    border-radius: 4px;
    margin-bottom: 20px;
    font-size:     .9375rem;
    line-height:   1.5;
}

.tvk-alert-error {
    background: #fef0f0;
    border:     1px solid #f5c6c6;
    color:      #c0392b;
}

.tvk-alert-success {
    background: #ecf9f1;
    border:     1px solid #a8dfbe;
    color:      #1a6b3c;
}

/* ==========================================================================
   Registration form
   ========================================================================== */

.tvk-register-header {
    margin-bottom: 24px;
}

.tvk-register-title {
    font-size:   1.5rem;
    font-weight: 700;
    margin:      0 0 8px;
    color:       var(--tvk-color-primary, #1a5fa8);
}

.tvk-register-subtitle {
    font-size: .9375rem;
    color:     var(--tvk-color-text-muted, #6b7a8d);
    margin:    0;
}

/* Form layout */
.tvk-register-form {
    background:    #fff;
    border:        1px solid var(--tvk-color-border, #dce3ec);
    border-radius: var(--tvk-radius-md, 8px);
    padding:       28px 28px 24px;
    box-shadow:    var(--tvk-shadow-sm, 0 1px 3px rgba(0,0,0,.08));
}

/* Field groups */
.tvk-field-group {
    margin-bottom: 18px;
}

.tvk-label {
    display:       block;
    font-size:     .875rem;
    font-weight:   600;
    margin-bottom: 5px;
    color:         var(--tvk-color-text, #2c3e50);
}

.tvk-label-inline {
    display:     flex;
    align-items: center;
    gap:         8px;
    font-size:   .875rem;
    color:       var(--tvk-color-text, #2c3e50);
    cursor:      pointer;
}

.tvk-input {
    display:       block;
    width:         100%;
    padding:       10px 12px;
    font-size:     1rem;
    line-height:   1.4;
    border:        1px solid #c5cdd8;
    border-radius: var(--tvk-radius-sm, 4px);
    background:    #fff;
    color:         var(--tvk-color-text, #2c3e50);
    box-sizing:    border-box;
    transition:    border-color .15s;
}

.tvk-input:focus {
    outline:      none;
    border-color: var(--tvk-color-primary, #1a5fa8);
    box-shadow:   0 0 0 3px rgba(26, 95, 168, .15);
}

/* Terms checkbox */
.tvk-terms {
    margin-top: 4px;
}

/* Submit area */
.tvk-submit-wrap {
    margin-top: 24px;
}

.tvk-btn-submit {
    display:        block;
    width:          100%;
    padding:        14px 20px;
    font-size:      1rem;
    font-weight:    700;
    text-align:     center;
    border:         none;
    border-radius:  var(--tvk-radius-sm, 4px);
    background:     var(--tvk-color-primary, #1a5fa8);
    color:          #fff;
    cursor:         pointer;
    transition:     background .15s, transform .1s;
    letter-spacing: .02em;
}

.tvk-btn-submit:hover,
.tvk-btn-submit:focus {
    background: var(--tvk-color-primary-dark, #134a87);
    outline:    none;
}

.tvk-btn-submit:active {
    transform: scale(.98);
}

.tvk-hint {
    font-size:  .8125rem;
    color:      var(--tvk-color-text-muted, #6b7a8d);
    text-align: center;
    margin:     10px 0 0;
}

/* ==========================================================================
   Status widget
   ========================================================================== */

.tvk-status-widget {
    background:    #fff;
    border:        1px solid var(--tvk-color-border, #dce3ec);
    border-radius: var(--tvk-radius-md, 8px);
    padding:       24px;
    box-shadow:    var(--tvk-shadow-sm, 0 1px 3px rgba(0,0,0,.08));
}

.tvk-status-title {
    font-size:     1.125rem;
    font-weight:   700;
    margin:        0 0 16px;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--tvk-color-border, #dce3ec);
    color:         var(--tvk-color-text, #2c3e50);
}

/* Status table */
.tvk-status-table {
    width:           100%;
    border-collapse: collapse;
    font-size:       .9375rem;
}

.tvk-status-table tr {
    border-bottom: 1px solid #f0f2f5;
}

.tvk-status-table tr:last-child {
    border-bottom: none;
}

.tvk-status-key {
    padding:    10px 12px 10px 0;
    width:      44%;
    color:      var(--tvk-color-text-muted, #6b7a8d);
    font-weight: 500;
    vertical-align: top;
}

.tvk-status-val {
    padding:    10px 0;
    font-weight: 600;
    color:      var(--tvk-color-text, #2c3e50);
    vertical-align: top;
}

/* Verification status colours */
.tvk-verified-ok   { color: var(--tvk-color-success, #27ae60); }
.tvk-verified-fail { color: var(--tvk-color-danger, #c0392b); }
.tvk-verified-wait { color: var(--tvk-color-accent, #f5a623); }

/* Badges */
.tvk-badge {
    display:       inline-block;
    padding:       3px 10px;
    border-radius: 12px;
    font-size:     .8125rem;
    font-weight:   700;
    letter-spacing: .01em;
}

.tvk-badge-active {
    background: #ecf9f1;
    color:      #1a6b3c;
}

.tvk-badge-inactive {
    background: #fef0f0;
    color:      #c0392b;
}

/* Connects counter */
.tvk-connects-count {
    font-size:   1.125rem;
    color:       var(--tvk-color-primary, #1a5fa8);
}

.tvk-connects-hint {
    font-size:  .8125rem;
    color:      var(--tvk-color-text-muted, #6b7a8d);
    margin-left: 4px;
}

/* Connects balance inline widget */
.tvk-connects-balance {
    display:   inline-block;
    font-size: .9rem;
    color:     var(--tvk-color-text-muted, #6b7a8d);
}

.tvk-connects-balance strong {
    color: var(--tvk-color-primary, #1a5fa8);
}

/* Pay button in status widget */
.tvk-status-action {
    margin-top: 20px;
    text-align: center;
}

.tvk-btn-pay {
    display:        inline-block;
    padding:        12px 28px;
    font-size:      .9375rem;
    font-weight:    700;
    border-radius:  var(--tvk-radius-sm, 4px);
    background:     var(--tvk-color-primary, #1a5fa8);
    color:          #fff !important;
    text-decoration: none;
    transition:     background .15s;
}

.tvk-btn-pay:hover,
.tvk-btn-pay:focus {
    background:     var(--tvk-color-primary-dark, #134a87);
    text-decoration: none;
    color:          #fff !important;
}

/* Verified badge (used on listing cards — Phase 2+) */
.tvk-badge-verified {
    display:         inline-flex;
    align-items:     center;
    gap:             4px;
    padding:         2px 8px;
    border-radius:   10px;
    font-size:       .75rem;
    font-weight:     700;
    background:      var(--tvk-color-success, #27ae60);
    color:           #fff;
    letter-spacing:  .01em;
}

/* ==========================================================================
   PHASE 3 — Profile edit form
   ========================================================================== */

.tvk-profile-wrap {
    max-width:   760px;
    margin:      0 auto 32px;
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    color:       var(--tvk-color-text, #2c3e50);
}

/* Info alert variant */
.tvk-alert-info {
    background: #eef5fc;
    border:     1px solid #b9d4ef;
    color:      #134a87;
}

/* Progress bar */
.tvk-progress-wrap {
    display:       flex;
    align-items:   center;
    gap:           12px;
    margin-bottom: 20px;
}

.tvk-progress-outer {
    flex:           1;
    height:         10px;
    background:     #e6eaf0;
    border-radius:  6px;
    overflow:       hidden;
}

.tvk-progress-inner {
    height:        100%;
    background:    var(--tvk-color-success, #27ae60);
    transition:    width .3s ease;
    border-radius: 6px;
}

.tvk-progress-label {
    font-size:   .8125rem;
    font-weight: 600;
    color:       var(--tvk-color-text-muted, #6b7a8d);
    white-space: nowrap;
}

/* Sections */
.tvk-section {
    background:    #fff;
    border:        1px solid var(--tvk-color-border, #dce3ec);
    border-radius: var(--tvk-radius-md, 8px);
    padding:       24px;
    margin-bottom: 20px;
    box-shadow:    var(--tvk-shadow-sm, 0 1px 3px rgba(0,0,0,.08));
}

.tvk-section-title {
    font-size:      1.125rem;
    font-weight:    700;
    margin:         0 0 18px;
    padding-bottom: 10px;
    border-bottom:  1px solid var(--tvk-color-border, #dce3ec);
    color:          var(--tvk-color-primary, #1a5fa8);
}

/* Two-column rows */
.tvk-fields-row {
    display: flex;
    gap:     16px;
    flex-wrap: wrap;
}

.tvk-col-half {
    flex: 1 1 calc(50% - 8px);
    min-width: 200px;
}

/* Small input */
.tvk-input-sm {
    max-width: 140px;
}

/* Textarea */
.tvk-textarea {
    display:       block;
    width:         100%;
    padding:       10px 12px;
    font-size:     1rem;
    line-height:   1.5;
    border:        1px solid #c5cdd8;
    border-radius: var(--tvk-radius-sm, 4px);
    background:    #fff;
    color:         var(--tvk-color-text, #2c3e50);
    box-sizing:    border-box;
    resize:        vertical;
    font-family:   inherit;
}

.tvk-textarea:focus {
    outline:      none;
    border-color: var(--tvk-color-primary, #1a5fa8);
    box-shadow:   0 0 0 3px rgba(26, 95, 168, .15);
}

/* Photo group */
.tvk-photo-group {
    margin-bottom: 20px;
}

.tvk-photo-preview {
    margin: 8px 0;
}

.tvk-avatar {
    width:         96px;
    height:        96px;
    object-fit:    cover;
    border-radius: 50%;
    border:        2px solid var(--tvk-color-border, #dce3ec);
}

.tvk-avatar-placeholder {
    display:         inline-flex;
    align-items:     center;
    justify-content: center;
    width:           96px;
    height:          96px;
    border-radius:   50%;
    background:      #f0f2f5;
    color:           var(--tvk-color-text-muted, #6b7a8d);
    font-size:       .7rem;
    text-align:      center;
    padding:         8px;
    box-sizing:      border-box;
}

/* Specializations grid */
.tvk-specializations-grid {
    display:               grid;
    grid-template-columns: repeat(3, 1fr);
    gap:                   8px 16px;
    margin-top:            6px;
}

.tvk-spec-item {
    display:     flex;
    align-items: flex-start;
    gap:         6px;
    font-size:   .875rem;
    line-height: 1.3;
    cursor:      pointer;
    color:       var(--tvk-color-text, #2c3e50);
}

.tvk-spec-item input {
    margin-top: 2px;
    flex-shrink: 0;
}

/* Document fields */
.tvk-doc-field {
    padding:       14px;
    background:    #f9fafc;
    border:        1px solid var(--tvk-color-border, #dce3ec);
    border-radius: var(--tvk-radius-sm, 4px);
    margin-bottom: 14px;
}

.tvk-doc-status {
    margin: 6px 0 10px;
    font-size: .875rem;
}

.tvk-doc-ok {
    color: var(--tvk-color-success, #27ae60);
    font-weight: 600;
}

.tvk-doc-ok a {
    color: var(--tvk-color-primary, #1a5fa8);
}

.tvk-doc-none {
    color: var(--tvk-color-text-muted, #6b7a8d);
}

.tvk-upload-btn {
    display:        inline-block;
    padding:        8px 16px;
    font-size:      .875rem;
    font-weight:    600;
    border:         1px solid var(--tvk-color-primary, #1a5fa8);
    border-radius:  var(--tvk-radius-sm, 4px);
    background:     #fff;
    color:          var(--tvk-color-primary, #1a5fa8);
    cursor:         pointer;
    transition:     background .15s, color .15s;
}

.tvk-upload-btn:hover {
    background: var(--tvk-color-primary, #1a5fa8);
    color:      #fff;
}

.tvk-upload-btn.tvk-uploading {
    opacity: .6;
    pointer-events: none;
}

/* Save profile button */
.tvk-save-profile-btn {
    max-width: 320px;
}

/* ==========================================================================
   PHASE 3 — Public profile
   ========================================================================== */

.tvk-public-profile-wrap {
    max-width:   760px;
    margin:      0 auto 32px;
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    color:       var(--tvk-color-text, #2c3e50);
}

.tvk-pp-header {
    display:       flex;
    gap:           24px;
    align-items:   flex-start;
    background:    #fff;
    border:        1px solid var(--tvk-color-border, #dce3ec);
    border-radius: var(--tvk-radius-md, 8px);
    padding:       28px;
    box-shadow:    var(--tvk-shadow-sm, 0 1px 3px rgba(0,0,0,.08));
    margin-bottom: 20px;
}

.tvk-pp-photo {
    flex-shrink: 0;
}

.tvk-pp-avatar {
    width:         120px;
    height:        120px;
    object-fit:    cover;
    border-radius: 12px;
    border:        1px solid var(--tvk-color-border, #dce3ec);
}

.tvk-pp-avatar-placeholder {
    display:         flex;
    align-items:     center;
    justify-content: center;
    width:           120px;
    height:          120px;
    border-radius:   12px;
    background:      var(--tvk-color-primary, #1a5fa8);
    color:           #fff;
    font-size:       3rem;
    font-weight:     700;
    text-transform:  uppercase;
}

.tvk-pp-info {
    flex: 1;
    min-width: 0;
}

.tvk-pp-name {
    font-size:   1.75rem;
    font-weight: 700;
    margin:      0 0 10px;
    color:       var(--tvk-color-text, #2c3e50);
}

.tvk-pp-experience,
.tvk-pp-location {
    margin:    8px 0 0;
    font-size: .9375rem;
    color:     var(--tvk-color-text, #2c3e50);
}

/* Public profile contact methods */
.tvk-pp-contacts {
    display:   flex;
    flex-wrap: wrap;
    gap:       6px 20px;
    margin-top: 10px;
}

.tvk-pp-contact {
    font-size: .9375rem;
    color:     var(--tvk-color-text, #2c3e50);
}

.tvk-pp-contact a {
    color: var(--tvk-color-primary, #1a5fa8);
}

.tvk-pp-tg strong  { color: #2a8fd0; }
.tvk-pp-wa strong  { color: #25a366; }

/* Public verification badges */
.tvk-badge-pending-pub {
    display:        inline-block;
    padding:        4px 12px;
    border-radius:  14px;
    font-size:      .8125rem;
    font-weight:    700;
    background:      #fff3e0;
    color:          #e65100;
}

.tvk-badge-rejected-pub {
    display:        inline-block;
    padding:        4px 12px;
    border-radius:  14px;
    font-size:      .8125rem;
    font-weight:    700;
    background:      #fce8e6;
    color:          #c0392b;
}

/* Public profile sections */
.tvk-pp-section {
    background:    #fff;
    border:        1px solid var(--tvk-color-border, #dce3ec);
    border-radius: var(--tvk-radius-md, 8px);
    padding:       24px;
    margin-bottom: 20px;
    box-shadow:    var(--tvk-shadow-sm, 0 1px 3px rgba(0,0,0,.08));
}

.tvk-pp-section-title {
    font-size:      1.25rem;
    font-weight:    700;
    margin:         0 0 16px;
    color:          var(--tvk-color-text, #2c3e50);
}

.tvk-pp-spec-tags {
    display:   flex;
    flex-wrap: wrap;
    gap:       8px;
}

.tvk-spec-tag {
    display:        inline-block;
    padding:        5px 14px;
    border-radius:  16px;
    font-size:      .8125rem;
    font-weight:    600;
    background:      #eef5fc;
    color:          var(--tvk-color-primary, #1a5fa8);
}

.tvk-pp-about {
    font-size:   .9375rem;
    line-height: 1.7;
    color:       var(--tvk-color-text, #2c3e50);
}

/* ==========================================================================
   Responsive
   ========================================================================== */

@media (max-width: 480px) {
    .tvk-register-form {
        padding: 20px 16px 16px;
    }
    .tvk-status-key {
        width: 42%;
    }
}

@media (max-width: 640px) {
    .tvk-specializations-grid {
        grid-template-columns: repeat(2, 1fr);
    }
    .tvk-col-half {
        flex: 1 1 100%;
    }
    .tvk-pp-header {
        flex-direction: column;
        align-items:    center;
        text-align:     center;
    }
    .tvk-pp-name {
        font-size: 1.4rem;
    }
}

@media (max-width: 420px) {
    .tvk-specializations-grid {
        grid-template-columns: 1fr;
    }
}

/* ==========================================================================
   Court practice (cases)
   ========================================================================== */
.tvk-cases-wrap{max-width:760px;margin:0 auto 32px}
.tvk-case-list{display:flex;flex-direction:column;gap:8px}
.tvk-case-item{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--tvk-color-border,#dce3ec);border-radius:8px;padding:10px 14px}
.tvk-case-badge{font-size:.78rem;font-weight:700;padding:2px 10px;border-radius:12px}
.tvk-case-pending{background:#fff3e0;color:#e65100}
.tvk-case-approved{background:#e6f4ea;color:#1a6b3c}
.tvk-case-rejected{background:#fce8e6;color:#c0392b}
.tvk-case-del{margin-left:auto;border:none;background:#f0f2f5;color:#c0392b;width:26px;height:26px;border-radius:50%;cursor:pointer;font-size:1rem;line-height:1}
.tvk-case-cards{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.tvk-case-card{background:#fff;border:1px solid var(--tvk-color-border,#dce3ec);border-radius:10px;padding:16px}
.tvk-case-card-title{font-size:1.05rem;font-weight:700;margin:0 0 8px;color:var(--tvk-color-text,#2c3e50)}
.tvk-case-date{font-size:.8rem;color:var(--tvk-color-text-muted,#6b7a8d);margin-left:8px}
.tvk-case-desc{font-size:.9rem;line-height:1.6;margin:10px 0}
.tvk-case-result{font-size:.9rem;margin:6px 0}
.tvk-case-file{display:inline-block;margin:6px 8px 0 0;font-size:.85rem;color:var(--tvk-color-primary,#1a5fa8)}

/* ==========================================================================
   Homepage sections (navy / white / gold)
   ========================================================================== */
:root{--tvk-navy:#13294b;--tvk-gold:#d4af37}

.tvk-hero{background:linear-gradient(135deg,#13294b 0%,#1a5fa8 100%);color:#fff;border-radius:16px;padding:56px 24px;text-align:center;margin:0 0 36px}
.tvk-hero-inner{max-width:760px;margin:0 auto}
.tvk-hero-title{font-size:2.2rem;font-weight:800;margin:0 0 12px;color:#fff;line-height:1.2}
.tvk-hero-sub{font-size:1.15rem;opacity:.92;margin:0 0 28px}
.tvk-hero-cta{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-bottom:24px}
.tvk-btn-gold{background:var(--tvk-gold);color:#13294b!important;font-weight:700;padding:14px 30px;border-radius:8px;text-decoration:none;transition:filter .15s}
.tvk-btn-gold:hover{filter:brightness(1.08);text-decoration:none}
.tvk-btn-outline{border:2px solid #fff;color:#fff!important;font-weight:700;padding:12px 28px;border-radius:8px;text-decoration:none;transition:background .15s}
.tvk-btn-outline:hover{background:rgba(255,255,255,.12);text-decoration:none}
.tvk-hero-trust{list-style:none;display:flex;gap:24px;justify-content:center;flex-wrap:wrap;padding:0;margin:0;font-size:.95rem;opacity:.95}
.tvk-hero-trust li{font-weight:600}

.tvk-home-section{max-width:1100px;margin:0 auto 44px;padding:0 16px}
.tvk-home-title{font-size:1.6rem;font-weight:800;text-align:center;color:var(--tvk-navy,#13294b);margin:0 0 24px}
.tvk-home-more{text-align:center;margin-top:24px}
.tvk-home-more .tvk-btn-outline{border-color:var(--tvk-color-primary,#1a5fa8);color:var(--tvk-color-primary,#1a5fa8)!important}

.tvk-cat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.tvk-cat-card{display:flex;align-items:center;justify-content:center;text-align:center;min-height:74px;background:#fff;border:1px solid var(--tvk-color-border,#dce3ec);border-radius:10px;padding:14px;text-decoration:none;color:var(--tvk-color-text,#2c3e50);font-weight:600;transition:box-shadow .15s,transform .1s}
.tvk-cat-card:hover{box-shadow:0 6px 18px rgba(19,41,75,.12);transform:translateY(-2px);text-decoration:none;border-color:var(--tvk-gold)}

.tvk-lawyer-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.tvk-lawyer-card{background:#fff;border:1px solid var(--tvk-color-border,#dce3ec);border-radius:12px;padding:20px;text-align:center;text-decoration:none;color:var(--tvk-color-text,#2c3e50);transition:box-shadow .15s,transform .1s}
.tvk-lawyer-card:hover{box-shadow:0 8px 22px rgba(19,41,75,.12);transform:translateY(-2px);text-decoration:none}
.tvk-lawyer-photo{width:84px;height:84px;margin:0 auto 12px;border-radius:50%;overflow:hidden;background:var(--tvk-navy,#13294b);display:flex;align-items:center;justify-content:center}
.tvk-lawyer-photo img{width:100%;height:100%;object-fit:cover}
.tvk-lawyer-ph{color:#fff;font-size:2rem;font-weight:700;text-transform:uppercase}
.tvk-lawyer-name{font-weight:700;font-size:1.02rem}
.tvk-lawyer-city{font-size:.85rem;color:var(--tvk-color-text-muted,#6b7a8d);margin-top:4px}

.tvk-benefits-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.tvk-benefit-card{background:#fff;border:1px solid var(--tvk-color-border,#dce3ec);border-radius:12px;padding:24px 16px;text-align:center}
.tvk-benefit-icon{display:block;font-size:2rem;margin-bottom:10px}
.tvk-benefit-text{font-weight:700;color:var(--tvk-navy,#13294b)}

@media(max-width:860px){
  .tvk-cat-grid,.tvk-benefits-grid{grid-template-columns:repeat(2,1fr)}
  .tvk-lawyer-grid{grid-template-columns:repeat(2,1fr)}
  .tvk-case-cards{grid-template-columns:1fr}
  .tvk-hero-title{font-size:1.7rem}
}
@media(max-width:480px){
  .tvk-cat-grid,.tvk-benefits-grid,.tvk-lawyer-grid{grid-template-columns:1fr}
}

/* Court practice — dedicated page + pagination */
.tvk-cases-page{max-width:1000px;margin:30px auto;padding:0 16px}
.tvk-pagination{display:flex;gap:6px;flex-wrap:wrap;justify-content:center;margin-top:24px}
.tvk-page{display:inline-block;min-width:36px;text-align:center;padding:8px 10px;border:1px solid var(--tvk-color-border,#dce3ec);border-radius:6px;text-decoration:none;color:var(--tvk-color-primary,#1a5fa8);font-weight:600}
.tvk-page:hover{background:#eef5fc;text-decoration:none}
.tvk-page-current{background:var(--tvk-color-primary,#1a5fa8);color:#fff!important;border-color:var(--tvk-color-primary,#1a5fa8)}
.tvk-case-card-title a{color:inherit;text-decoration:none}
.tvk-case-card-title a:hover{color:var(--tvk-color-primary,#1a5fa8)}
