.sjv-portal { max-width: 1200px; margin: 20px auto; font-family: Arial, sans-serif; }
.sjv-top { display:flex; justify-content:space-between; align-items:center; }
.sjv-card { background:#fff; border:1px solid #ddd; border-radius:8px; padding:18px; margin:18px 0; }
.sjv-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.sjv-portal input, .sjv-portal textarea, .sjv-portal select { width:100%; padding:10px; margin:6px 0 12px; box-sizing:border-box; }
.sjv-portal button, .sjv-button { background:#0066cc; color:#fff; border:0; padding:10px 14px; border-radius:4px; cursor:pointer; text-decoration:none; display:inline-block; }
.sjv-portal table { width:100%; border-collapse:collapse; }
.sjv-portal th, .sjv-portal td { border:1px solid #ddd; padding:8px; vertical-align:top; }
.sjv-portal th { background:#222; color:#fff; }
.sjv-item { border:1px solid #eee; padding:10px; margin:10px 0; background:#fafafa; }
.sjv-danger { background:#b00020 !important; margin-top:8px; }
@media (max-width:800px){ .sjv-grid { grid-template-columns:1fr; } }
.sjv-notice { background:#d9fdd3; border:1px solid #6abf69; padding:12px; margin:12px 0; border-radius:6px; }
.sjv-small { color:#555; font-size:13px; }

.sjv-filter-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; max-width:700px; }
.sjv-filter-form label { display:block; font-weight:bold; margin-bottom:4px; }
.sjv-secondary { background:#555 !important; margin-left:8px; }
.sjv-bulk-actions { margin:0 0 12px; display:flex; gap:10px; align-items:center; }
.sjv-check { width:42px; text-align:center; }
.sjv-check input { width:auto !important; }
@media (max-width:800px){ .sjv-filter-grid { grid-template-columns:1fr; } }


/* v0.9 table cleanup */
.sjv-bulk-actions {
    margin: 0 0 14px 0;
    padding: 10px 12px;
    background: #f7f7f7;
    border: 1px solid #ddd;
    border-radius: 6px;
    display: flex;
    gap: 10px;
    align-items: center;
    clear: both;
}
.sjv-projects-table {
    width: 100%;
    border-collapse: collapse;
    margin-top: 0;
}
.sjv-projects-table thead th {
    background: #222 !important;
    color: #fff !important;
    font-weight: bold;
    text-align: left;
    padding: 10px 8px;
    border: 1px solid #ddd;
}
.sjv-projects-table tbody td {
    border: 1px solid #ddd;
    padding: 8px;
    vertical-align: top;
}
.sjv-projects-table .sjv-check {
    width: 44px;
    text-align: center;
}
.sjv-projects-table .sjv-check input {
    width: auto !important;
    margin: 0;
}


/* v1.0 forced project table header fix */
.sjv-fixed-projects-table {
    width: 100% !important;
    border-collapse: collapse !important;
    table-layout: auto !important;
}
.sjv-fixed-projects-table tr.sjv-projects-header-row td {
    background: #222 !important;
    color: #fff !important;
    font-weight: bold !important;
    text-align: left !important;
    padding: 10px 8px !important;
    border: 1px solid #ddd !important;
    display: table-cell !important;
    visibility: visible !important;
}
.sjv-fixed-projects-table tr.sjv-projects-header-row .sjv-check {
    text-align: center !important;
    width: 44px !important;
}
.sjv-fixed-projects-table tr.sjv-projects-header-row input {
    width: auto !important;
    margin: 0 !important;
}


/* v1.2 project table header hard fix */
.sjv-portal table.sjv-projects-table thead,
.sjv-portal table.sjv-projects-table thead tr,
.sjv-portal table.sjv-projects-table thead th {
    display: table-header-group;
    visibility: visible;
}
.sjv-portal table.sjv-projects-table thead tr {
    display: table-row !important;
}
.sjv-portal table.sjv-projects-table thead th {
    display: table-cell !important;
    background: #222 !important;
    color: #fff !important;
    font-weight: 700 !important;
    text-align: left !important;
    padding: 10px 8px !important;
    border: 1px solid #ddd !important;
}
.sjv-portal table.sjv-projects-table tbody tr,
.sjv-portal table.sjv-projects-table tbody td {
    background: #fff !important;
    color: #111 !important;
}
.sjv-portal table.sjv-projects-table tbody tr:nth-child(even) td {
    background: #fafafa !important;
}
.sjv-portal table.sjv-projects-table tbody td a {
    color: #0066cc !important;
}
.sjv-portal table.sjv-projects-table .sjv-check {
    width: 44px !important;
    text-align: center !important;
}
.sjv-portal table.sjv-projects-table .sjv-check input {
    width: auto !important;
    margin: 0 !important;
}


/* v1.3 replace projects table with CSS grid to avoid theme table-header conflicts */
.sjv-project-list {
    width: 100%;
    border: 1px solid #ddd;
    border-bottom: 0;
    box-sizing: border-box;
}
.sjv-project-list-header,
.sjv-project-list-row {
    display: grid;
    grid-template-columns: 60px minmax(280px, 1fr) 90px 110px 210px 90px;
    align-items: stretch;
}
.sjv-project-list-header {
    background: #222 !important;
    color: #fff !important;
    font-weight: 700 !important;
}
.sjv-project-list-row {
    background: #fff !important;
    color: #111 !important;
}
.sjv-project-list-row:nth-child(odd) {
    background: #fafafa !important;
}
.sjv-project-list-cell {
    padding: 10px 8px;
    border-right: 1px solid #ddd;
    border-bottom: 1px solid #ddd;
    box-sizing: border-box;
    color: inherit !important;
}
.sjv-project-list-cell:last-child {
    border-right: 0;
}
.sjv-project-list .sjv-check {
    text-align: center;
}
.sjv-project-list .sjv-check input {
    width: auto !important;
    margin: 0 !important;
}
.sjv-project-title a {
    color: #0066cc !important;
    text-decoration: underline !important;
}
@media (max-width: 900px) {
    .sjv-project-list-header,
    .sjv-project-list-row {
        grid-template-columns: 44px minmax(180px, 1fr) 75px 90px 150px 80px;
        font-size: 14px;
    }
}


/* v1.4 critical project grid fix - also injected inline to bypass browser cache */
.sjv-project-list {
    width: 100% !important;
    border: 1px solid #ddd !important;
    border-bottom: 0 !important;
    box-sizing: border-box !important;
    display: block !important;
}
.sjv-project-list-header,
.sjv-project-list-row {
    display: grid !important;
    grid-template-columns: 60px minmax(260px, 1.2fr) minmax(180px, 1fr) minmax(180px, 1fr) 90px 110px 190px 90px !important;
    align-items: stretch !important;
    width: 100% !important;
    box-sizing: border-box !important;
}
.sjv-project-list-header {
    background: #222 !important;
    color: #fff !important;
    font-weight: 700 !important;
}
.sjv-project-list-row {
    background: #fff !important;
    color: #111 !important;
}
.sjv-project-list-row:nth-child(odd) {
    background: #fafafa !important;
}
.sjv-project-list-cell {
    display: block !important;
    padding: 10px 8px !important;
    border-right: 1px solid #ddd !important;
    border-bottom: 1px solid #ddd !important;
    box-sizing: border-box !important;
    color: inherit !important;
}
.sjv-project-list-cell:last-child {
    border-right: 0 !important;
}
.sjv-project-list .sjv-check {
    text-align: center !important;
}
.sjv-project-list .sjv-check input {
    width: auto !important;
    margin: 0 !important;
}
.sjv-project-title a {
    color: #0066cc !important;
    text-decoration: underline !important;
}
@media (max-width: 900px) {
    .sjv-project-list-header,
    .sjv-project-list-row {
        grid-template-columns: 44px minmax(180px, 1fr) minmax(140px, 1fr) minmax(140px, 1fr) 75px 90px 150px 80px !important;
        font-size: 14px !important;
    }
}


/* v1.5 latest note/task columns */
.sjv-latest-note,
.sjv-latest-task {
    font-size: 14px !important;
    color: #333 !important;
    line-height: 1.35 !important;
}


/* v1.6 project list returned to real table under custom WCC theme */
.sjv-projects-table {
    width: 100% !important;
    border-collapse: collapse !important;
    table-layout: auto !important;
}
.sjv-projects-table th {
    background: #222 !important;
    color: #fff !important;
    font-weight: 700 !important;
    text-align: left !important;
    padding: 10px !important;
    border: 1px solid #ddd !important;
    vertical-align: middle !important;
}
.sjv-projects-table td {
    background: #fff !important;
    color: #111 !important;
    padding: 10px !important;
    border: 1px solid #ddd !important;
    vertical-align: top !important;
}
.sjv-projects-table tr:nth-child(even) td {
    background: #fafafa !important;
}
.sjv-projects-table .sjv-check {
    width: 48px !important;
    text-align: center !important;
}
.sjv-projects-table .sjv-check input {
    width: auto !important;
    margin: 0 !important;
}
.sjv-projects-table .sjv-col-project {
    min-width: 280px !important;
}
.sjv-projects-table .sjv-col-note,
.sjv-projects-table .sjv-col-task {
    min-width: 180px !important;
    font-size: 14px !important;
    line-height: 1.35 !important;
}
.sjv-projects-table .sjv-col-created {
    min-width: 150px !important;
}
.sjv-projects-table .sjv-col-delete {
    width: 95px !important;
}

/* v1.7 trash/restore */
.sjv-bulk-actions button:not(.sjv-danger) {
    background: #0066cc !important;
    color: #fff !important;
}

/* v1.8 search filter */
.sjv-filter-grid-3 {
    grid-template-columns: 1.3fr 1fr 1fr !important;
    max-width: 100% !important;
}
@media (max-width:800px){
    .sjv-filter-grid-3 {
        grid-template-columns: 1fr !important;
    }
}

/* v1.9 approval requests */
.sjv-approvals-table select,
.sjv-approvals-table textarea {
    min-width: 160px !important;
}
.sjv-approvals-table textarea {
    min-height: 70px !important;
}
.sjv-approvals-table td {
    vertical-align: top !important;
}

/* v2.0 email approval workflow */
.sjv-approvals-table th,
.sjv-approvals-table td {
    font-size: 14px !important;
}
.sjv-approvals-table .sjv-small {
    font-size: 12px !important;
}

/* v2.1 approval packages */
.sjv-package {
    background: #fafafa !important;
    border: 1px solid #ddd !important;
    border-radius: 8px !important;
}
.sjv-package h4 {
    margin-top: 0 !important;
    font-size: 20px !important;
}
.sjv-package details {
    margin: 12px 0 !important;
    padding: 10px !important;
    background: #fff !important;
    border: 1px solid #ddd !important;
}
.sjv-package summary {
    cursor: pointer !important;
    font-weight: bold !important;
}

/* v2.2 project/task status separation */
.sjv-progress-wrap {
    margin-top: 14px !important;
}
.sjv-progress-bar {
    background: #e5e5e5 !important;
    border-radius: 999px !important;
    height: 18px !important;
    overflow: hidden !important;
    margin: 8px 0 !important;
}
.sjv-progress-bar span {
    display: block !important;
    height: 100% !important;
    background: #0066cc !important;
}
.sjv-tasks-table details {
    min-width: 170px !important;
}
.sjv-tasks-table summary {
    cursor: pointer !important;
    font-weight: bold !important;
}
.sjv-tasks-table textarea {
    min-height: 70px !important;
}

/* v3.0 platform layout */
.wcc-app-nav{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:0 0 18px 0;padding:12px;background:#222;border-radius:8px}
.wcc-app-nav a{color:#fff!important;text-decoration:none!important;padding:8px 12px;border-radius:5px;background:#444}
.wcc-app-nav a.active{background:#0066cc}
.wcc-app-nav .wcc-user{color:#fff;margin-left:auto;font-size:13px}
.wcc-app-nav .wcc-signout{background:#666}
.wcc-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:18px 0}
.wcc-stats div{background:#fff;border:1px solid #ddd;border-radius:8px;padding:18px;text-align:center}
.wcc-stats strong{display:block;font-size:34px}
.wcc-stats span{color:#555}
.sjv-package{background:#fafafa!important;border:1px solid #ddd!important;border-radius:8px!important}
@media(max-width:900px){.wcc-stats{grid-template-columns:1fr 1fr}.wcc-app-nav .wcc-user{margin-left:0;width:100%}}

/* v3.1 email module */
.sjv-portal .sjv-item form select {
    max-width: 100% !important;
}

/* v3.2 email filters */
.sjv-inline-check {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    margin: 8px 0 12px !important;
    font-weight: normal !important;
}
.sjv-inline-check input {
    width: auto !important;
    margin: 0 !important;
}

/* v3.3 email detail */
.sjv-email-body {
    max-height: 500px !important;
    overflow: auto !important;
    background: #fafafa !important;
    border: 1px solid #ddd !important;
    padding: 14px !important;
    white-space: normal !important;
}
.sjv-item details {
    margin-top: 8px !important;
}
.sjv-item summary {
    cursor: pointer !important;
    font-weight: 700 !important;
}

/* v3.5 Gmail attachment preview before attach */
.sjv-email-attachment-row {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 12px !important;
    padding: 10px !important;
    border: 1px solid #ddd !important;
    border-radius: 6px !important;
    margin: 8px 0 !important;
    background: #fafafa !important;
}
.sjv-email-attachment-row .sjv-inline-check {
    margin: 0 !important;
    flex: 1 !important;
}

/* v3.6 send email */
.sjv-email-attach-existing {
    margin: 12px 0 !important;
    padding: 12px !important;
    border: 1px solid #ddd !important;
    border-radius: 6px !important;
    background: #fafafa !important;
}
.sjv-email-attach-existing summary {
    cursor: pointer !important;
    font-weight: 700 !important;
}

/* v3.7 collapsed email composer */
.sjv-compose-card {
    padding: 0 !important;
}
.sjv-compose-card details {
    padding: 18px !important;
}
.sjv-compose-summary {
    display: inline-block !important;
    background: #0066cc !important;
    color: #fff !important;
    padding: 10px 14px !important;
    border-radius: 6px !important;
    cursor: pointer !important;
    font-weight: 700 !important;
    list-style: none !important;
}
.sjv-compose-summary::-webkit-details-marker {
    display: none !important;
}
.sjv-compose-card details[open] .sjv-compose-summary {
    margin-bottom: 14px !important;
}

/* v3.8 report builder */
.sjv-report-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 14px !important;
}
.sjv-report-results {
    overflow-x: auto !important;
}
.sjv-report-builder label {
    font-weight: 700 !important;
}
@media (max-width: 800px) {
    .sjv-report-grid {
        grid-template-columns: 1fr !important;
    }
}

/* v3.9 front-end administration */
.sjv-portal code {
    background: #f1f1f1 !important;
    padding: 3px 6px !important;
    border-radius: 4px !important;
}
.sjv-portal ul {
    margin-left: 20px !important;
}

/* v4.0 cleaned front-end admin */
.sjv-bulk-actions {
    margin: 12px 0 !important;
}

/* v6.6 timeline controls */
.sjv-timeline-actions { margin-top: 8px !important; }
.sjv-timeline-actions form { display: inline-block !important; margin-right: 6px !important; }
.sjv-danger { background: #b00020 !important; color: #fff !important; border-color: #b00020 !important; }

/* v6.9 approval soft delete */
.sjv-projects-table form { margin: 0 !important; }

/* v7.6 task update forms */
.sjv-task-update-form {
    margin-top: 8px !important;
    display: flex !important;
    gap: 6px !important;
    align-items: center !important;
    flex-wrap: wrap !important;
}
.sjv-task-update-form select,
.sjv-task-update-form input[type="number"] {
    width: auto !important;
    min-width: 90px !important;
}

/* v7.8 project email open timeline */
.sjv-email-timeline-actions { margin-top: 8px !important; }
.sjv-email-full {
    margin-top: 10px !important;
    padding: 12px !important;
    border: 1px solid #ddd !important;
    background: #fafafa !important;
}
.sjv-email-body {
    margin-top: 10px !important;
    padding-top: 10px !important;
    border-top: 1px solid #ddd !important;
    white-space: normal !important;
}

/* v8.0 email module redirect */
a.sjv-button {
    display: inline-block !important;
    padding: 8px 12px !important;
    background: #2563eb !important;
    color: #fff !important;
    text-decoration: none !important;
    border-radius: 4px !important;
}
a.sjv-button:hover { opacity: 0.9 !important; }

/* v8.2 collapsible project sections */
.sjv-collapsible-card summary {
    cursor: pointer !important;
    font-size: 18px !important;
    padding: 6px 0 !important;
}
.sjv-collapsible-card summary:hover {
    opacity: 0.85 !important;
}
.sjv-collapsible-content {
    margin-top: 14px !important;
}

/* v8.8 role permission audit */
.sjv-role-audit-table td {
    vertical-align: top !important;
}
.sjv-can {
    color: #166534 !important;
    margin-bottom: 3px !important;
}
.sjv-cannot {
    color: #991b1b !important;
    margin-bottom: 3px !important;
}

/* v9.0 role audit collapse refresh */
.sjv-role-audit-card summary {
    cursor: pointer !important;
    font-size: 18px !important;
    padding: 6px 0 !important;
}
.sjv-role-audit-summary {
    padding: 10px 0 !important;
}
.sjv-role-pill {
    display: inline-block !important;
    margin: 2px 6px 2px 0 !important;
    padding: 3px 8px !important;
    border: 1px solid #ddd !important;
    border-radius: 12px !important;
    background: #f8f8f8 !important;
    font-size: 12px !important;
}

/* v9.1 audit clear button */
a.sjv-secondary-button {
    background: #555 !important;
    margin-left: 6px !important;
}



/* v9.8 repeatable recipient fields */
.sjv-recipient-list {
    width: 100% !important;
}
.sjv-recipient-row {
    display: flex !important;
    gap: 8px !important;
    align-items: center !important;
    margin-bottom: 8px !important;
}
.sjv-recipient-row input {
    flex: 1 !important;
    width: 100% !important;
}
.sjv-add-recipient,
.sjv-remove-recipient {
    white-space: nowrap !important;
}
.sjv-remove-recipient {
    background: #666 !important;
}

/* v10 project email unified layout */
.sjv-project-email-card label,
.sjv-compose-card label {
    display: block !important;
    margin-top: 12px !important;
    margin-bottom: 4px !important;
}
.sjv-project-email-card input[type="text"],
.sjv-project-email-card input:not([type]),
.sjv-project-email-card textarea,
.sjv-project-email-card select,
.sjv-compose-card input[type="text"],
.sjv-compose-card input:not([type]),
.sjv-compose-card textarea,
.sjv-compose-card select {
    width: 100% !important;
    box-sizing: border-box !important;
}
.sjv-project-email-card .sjv-recipient-row,
.sjv-compose-card .sjv-recipient-row {
    display: flex !important;
    gap: 8px !important;
    align-items: center !important;
}
.sjv-project-email-card .sjv-recipient-row input,
.sjv-compose-card .sjv-recipient-row input {
    flex: 1 !important;
}


/* v10.4 clean task form labels */
.sjv-form-label {
    display: block !important;
    font-weight: 600 !important;
    margin: 14px 0 4px 0 !important;
}

.sjv-form-help {
    margin: 0 0 6px 0 !important;
    font-size: 12px !important;
    color: #666 !important;
}

/* v10.6 approval package form cleanup */
.sjv-approval-form-grid {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 14px 16px !important;
    align-items: start !important;
    margin-top: 12px !important;
}
.sjv-approval-form-grid .sjv-form-field-full {
    grid-column: 1 / -1 !important;
}
.sjv-approval-form-grid input,
.sjv-approval-form-grid textarea {
    width: 100% !important;
    box-sizing: border-box !important;
}
.sjv-form-label {
    display: block !important;
    font-weight: 600 !important;
    margin: 12px 0 4px 0 !important;
}
.sjv-form-help {
    margin: 0 0 6px 0 !important;
    font-size: 12px !important;
    color: #666 !important;
}
.sjv-form-actions {
    margin-top: 4px !important;
}
@media (max-width: 700px) {
    .sjv-approval-form-grid {
        grid-template-columns: 1fr !important;
    }
}
