.project-upload-panel{border:1px solid rgba(27,70,126,.14);background:linear-gradient(180deg,#ffffff 0%,#f8fbff 100%)}
.project-media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;margin-top:16px}
.media-card{background:#fff;border:1px solid #e6eaf0;border-radius:18px;overflow:hidden;box-shadow:0 12px 30px rgba(15,23,42,.06)}
.media-preview{height:190px;background:#f1f5f9;display:flex;align-items:center;justify-content:center;overflow:hidden}
.media-preview img,.media-preview video{width:100%;height:100%;object-fit:cover;display:block}.media-preview video{background:#0f172a}.doc-preview{display:flex;align-items:center;justify-content:center;width:100%;height:100%;font-weight:800;color:#355070;text-decoration:none;background:linear-gradient(135deg,#eef6ff,#ffffff)}
.media-card-body{padding:14px}.media-card-body p{margin:6px 0 10px;color:#58657a}.media-meta{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0}.media-meta span{font-size:12px;border:1px solid #e5e7eb;border-radius:999px;padding:4px 8px;background:#f8fafc;color:#475569}.small-btn{font-size:12px;padding:7px 10px;margin-top:10px}.small-metric{font-size:22px!important}.timeline-list{display:grid;gap:12px;margin-top:12px}.timeline-list>div{border-left:3px solid #d8e4f2;padding:10px 0 10px 14px;background:linear-gradient(90deg,#f9fbff,transparent);border-radius:10px}.public-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.customer-doc-shell{max-width:1040px;margin:0 auto;padding:24px}.customer-doc-header{display:flex;justify-content:space-between;gap:16px;background:linear-gradient(135deg,#10243e,#1f5a7a);color:white;padding:28px;border-radius:24px;margin-bottom:20px}.customer-doc-header h1{margin:4px 0;color:white}.customer-doc-header p{color:rgba(255,255,255,.82)}.customer-kicker{text-transform:uppercase;letter-spacing:.12em;font-weight:800;font-size:12px;color:#9be7ff}.platform-warning{border:1px solid #fde68a;background:#fffbeb;color:#78350f;border-radius:16px;padding:14px;margin-top:18px}.feature-placeholder .big-icon{font-size:48px}.request-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.request-summary div{border:1px solid #e5e7eb;border-radius:14px;padding:12px;background:#fff}.request-summary strong{display:block;font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:#64748b}.request-summary span{font-size:16px;color:#0f172a}@media(max-width:720px){.project-media-grid{grid-template-columns:1fr}.customer-doc-header{border-radius:18px;padding:20px}.media-preview{height:220px}}

/* v15.3 mobile camera capture */
.jx-mobile-capture-panel .grid.two{align-items:stretch}
.jx-camera-tile{display:flex;flex-direction:column;gap:10px;border:1px solid rgba(148,163,184,.35);border-radius:18px;padding:18px;background:linear-gradient(180deg,#ffffff,#f8fbff);font-weight:800;cursor:pointer;min-height:120px;justify-content:center}
.jx-camera-tile span{font-weight:600;color:#64748b;font-size:.92rem;line-height:1.35}
.jx-camera-input{margin-top:6px;border:1px dashed rgba(59,130,246,.35);padding:10px;border-radius:12px;background:#fff;width:100%}
@media (max-width: 760px){.jx-mobile-capture-panel .grid.two{grid-template-columns:1fr}.jx-camera-tile{font-size:1.05rem}.project-media-grid{grid-template-columns:1fr}}
