
.gem-details-container {
    margin: 30px auto;
    background: #fff;
    padding: 30px;
    border-radius: 14px;
    box-shadow: 0 6px 18px rgba(0,0,0,0.08);
    font-family: 'Arial', sans-serif;
}
.gem-title {
    font-size: 28px;
    font-weight: 700;
    margin-bottom: 20px;
}
.gem-section-title {
    color: #78288c;
    font-size: 20px;
    font-weight: 600;
    margin: 25px 0 15px;
}
.gem-summary-grid, .gem-treatment-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 15px;
    margin-bottom: 20px;
}
.gem-card {
    background: #f8f8f8;
    padding: 14px 16px;
    border-radius: 8px;
    font-size: 14px;
    color: #333;
    line-height: 1.4;
}
.gem-upload-gradient {
    display:inline-block;
    background:linear-gradient(90deg,#78288c,#9d4edd);
    color:#fff;
    padding:10px 18px;
    border:none;
    border-radius:6px;
    font-size:14px;
    font-weight:600;
    cursor:pointer;
    transition:0.3s ease;
}
.gem-upload-gradient:hover {
    opacity:0.9;
}
.gem-modal {
    display:none;
    position:fixed;
    top:0; left:0;
    width:100%; height:100%;
    background:rgba(0,0,0,0.6);
    justify-content:center;
    align-items:center;
    z-index:9999;
}
.gem-modal-content {
    background:#fff;
    padding:20px;
    border-radius:10px;
    max-width:400px;
    width:90%;
    text-align:center;
}
.gem-loader {
    text-align:center;
    font-size:16px;
    color:#666;
    margin:30px 0;
}

.gem-back-btn-container {
    text-align:right;
    margin-top:20px;
}
.gem-back-button {
    display:inline-block;
    background:linear-gradient(90deg,#78288c,#9d4edd);
    color:#fff;
    padding:10px 18px;
    border-radius:6px;
    font-size:14px;
    font-weight:600;
    text-decoration:none;
}
.gem-back-button:hover {
    opacity:0.9;
}
.gem-uploads a {
    display:inline-block;
    background:#ececec;
    padding:6px 10px;
    margin-top:5px;
    border-radius:4px;
    text-decoration:none;
    color:#333;
    font-size:13px;
}
.gem-uploads a:hover {
    background:#ddd;
}

.gem-back-button {
    color: #fff !important;
}
.gem-content {
    opacity:0;
    transition: opacity 0.5s ease-in-out;
}
.gem-content.show {
    opacity:1;
}


/* Dashboard UI polish */
.gem-dashboard { margin: 0 auto; padding: 12px 8px 32px; }
.gem-header { display:flex; align-items:center; justify-content:space-between; margin: 8px 0 12px; }
.gem-title { font-size: 28px; font-weight: 700; margin: 0; color: #5f2ab5; }
.gem-table-card { background:#fff; border-radius:16px; box-shadow: 0 12px 30px rgba(15, 23, 42, 0.08); overflow:hidden; }
.gem-table-scroll { overflow-x:auto; }
.gem-cases-table { width:100%; border-collapse: separate; border-spacing: 0; font-size: 15px; }
.gem-cases-table thead th { position: sticky; top: 0; background: #fafafa; text-align: left; font-weight: 700; color:#334155; padding: 8px 8px; border-bottom:1px solid #eee; }
.gem-cases-table tbody td { padding: 8px 8px; border-bottom:1px solid #f1f5f9; color:#0f172a; }
.gem-cases-table tbody tr:nth-child(even) { background: #fcfcff; }
.gem-cases-table tbody tr:hover { background:#f7f7fd; }
.gem-cases-table thead th.gem-sortable { cursor:pointer; user-select:none; position:relative; }
.gem-cases-table thead th.gem-sort-asc::after { content:'\25B2'; position:absolute; right:10px; font-size:10px; }
.gem-cases-table thead th.gem-sort-desc::after { content:'\25BC'; position:absolute; right:10px; font-size:10px; }

/* Badges */
.gem-badge { display:inline-block; border-radius:999px; padding:6px 10px; font-size: 13px; line-height:1; background:#f3f4f6; color:#334155; border:1px solid #e5e7eb; white-space:nowrap; }
.gem-badge--designer { background:#eef2ff; color:#3730a3; border-color:#e0e7ff; }
.gem-badge--status-assigned { background:#06b6d4; color:#ffffff; border-color:#065f46; }
.gem-badge--status-received { background:#999999; color:#ffffff; border-color:#999999; }
.gem-badge--status-pending { background:#fff7ed; color:#ffffff; border-color:#fff7ed; }
.gem-badge--status-in-progress { background:#3b82f6; color:#ffffff; border-color:#3b82f6; }
.gem-badge--status-missing-data { background:#f59e0b; color:#ffffff; border-color:#f59e0b; }
.gem-badge--status-for-approval { background:#8b5cf6; color:#ffffff; border-color:#8b5cf6; }
.gem-badge--status-approved { background:#10b981; color:#ffffff; border-color:#10b981; }

/* Upload modal + buttons */
.gem-upload-modal { position:fixed; inset:0; z-index:10000; display:none; }
.gem-upload-modal__backdrop { position:absolute; inset:0; background:rgba(0,0,0,.45); }
.gem-upload-modal__dialog { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); background:#fff; border-radius:14px; width:min(560px, 94vw); padding:18px; box-shadow:0 20px 50px rgba(0,0,0,.2); }
.gem-upload-modal__header { display:flex; justify-content:space-between; align-items:center; margin-bottom:8px; }
.gem-upload-modal__title { font-size:18px; font-weight:700; }
.gem-upload-modal__close { background:transparent; border:0; font-size:22px; cursor:pointer; }
.gem-upload-actions { display:flex; gap:10px; margin-top:10px; }
.gem-btn { padding:8px 12px; border-radius:10px; border:1px solid #e5e7eb; background:#f8fafc; cursor:pointer; }
.gem-btn--primary { background:#6d28d9; border-color:#6d28d9; color:#fff; }
.gem-upload-status { margin-top:8px; font-size:14px; }

/* --- v1.12.3 Modal UX Polish --- */
.gem-upload-modal__dialog { padding: 22px 22px 18px; border-radius:16px; }
.gem-upload-modal__title { font-size: 20px; font-weight: 700; letter-spacing: .2px; }
.gem-upload-modal__body { padding-top: 8px; }
#gem-file-input { display:block; width:100%; padding:10px 12px; border:1px solid #e5e7eb; border-radius:10px; }
.gem-upload-actions { display:flex; gap:12px; margin-top:14px; }
.gem-btn { padding:10px 14px; border-radius:12px; border:1px solid #e5e7eb; background:#f8fafc; cursor:pointer; font-weight:600; }
.gem-btn--primary { background:#6d28d9; border-color:#6d28d9; color:#fff; }
.gem-btn--ok { background:#10b981; border-color:#10b981; color:#fff; }
.gem-btn:disabled { opacity:.6; cursor:not-allowed; }
.gem-upload-status { margin-top:12px; font-size:14px; line-height:1.4; }

.gem-notice{padding:12px;border-radius:8px;margin:10px 0}.gem-notice--error{background:#fff3f3;border:1px solid #ffd6d6}

.gem-raw{font-family:monospace; white-space:pre-wrap; word-break:break-word;}


/* === GEM Case Details UI v1.12.20 additions === */
.gem-topbar{position:sticky;top:0;z-index:5;background:#fff;padding:12px 0;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--gts-border,#e5e7eb);margin-bottom:16px}
.gem-badge{display:inline-flex;align-items:center;gap:8px;border-radius:999px;padding:4px 10px;font-weight:600;border:1px solid #e5e7eb}
.gem-status-received{background:rgba(124,58,237,.08);border-color:rgba(124,58,237,.25)}
.gem-case-id{margin-left:8px;color:#6b7280}
.gem-actions{display:flex;gap:8px;flex-wrap:wrap}
.gem-btn{border-radius:10px;border:1px solid var(--gts-border,#e5e7eb);padding:8px 12px;background:#fff;cursor:pointer}
.gem-btn--ghost{background:#fafafa}
.gem-btn--link{border:none;text-decoration:none;padding:8px 6px;color:#6b46c1}
.gem-layout{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:24px}
.gem-card{background:#fff;border:1px solid var(--gts-border,#e5e7eb);border-radius:14px;padding:16px;box-shadow:0 6px 16px rgba(0,0,0,.05)}
.gem-card--full{grid-column:1 / -1}
.gem-col-main,.gem-col-side{display:flex;flex-direction:column;gap:16px}
.gem-upload-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.gem-upload-item{display:flex;align-items:center;justify-content:space-between;border:1px dashed var(--gts-border,#e5e7eb);border-radius:12px;padding:10px}
.gem-upload-left{display:flex;align-items:center;gap:10px}
.gem-file-ext{font-weight:700}
.gem-upload-actions{display:flex;gap:8px;margin-top:8px}
[data-collapsible] .gem-collapsible-head{display:flex;justify-content:space-between;align-items:center;margin:-6px 0 6px}
.gem-collapse-toggle{border:none;background:transparent;cursor:pointer}
@media(max-width:900px){.gem-layout{grid-template-columns:1fr}}
