.photos{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:14px 0}
.photos figure{position:relative;aspect-ratio:4/3;margin:0;border-radius:12px;overflow:hidden;background:#edf0ec;cursor:pointer;transition:transform .18s,box-shadow .18s}
.photos figure:hover{transform:translateY(-2px);box-shadow:0 8px 20px rgba(0,0,0,0.12)}
.photos figure:hover .photo-zoom-hint{opacity:1}
.photos img{width:100%;height:100%;object-fit:cover;display:block}
.photo-zoom-hint{position:absolute;inset:0;background:rgba(23,35,29,0.35);display:grid;place-items:center;color:#fff;font-size:22px;opacity:0;transition:opacity .18s;pointer-events:none}
.photo-delete{position:absolute;right:6px;top:6px;width:28px;height:28px;padding:0;border-radius:50%;background:#17231de6;color:#fff;font-size:18px;display:grid;place-items:center;cursor:pointer;z-index:3;transition:background .15s}
.photo-delete:hover{background:#b6413c}
.photos-empty{grid-column:1/-1;padding:18px;border:1px dashed #cad2cb;border-radius:11px;text-align:center;color:var(--muted);font-size:13px}

.card-section-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;margin:20px 0 10px}
.card-section-head h3{margin:0;font-size:15px;color:var(--ink)}
.photo-buttons{display:flex;gap:8px;flex-wrap:wrap}

.btn-action{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border-radius:9px;font-size:13px;font-weight:600;cursor:pointer;transition:.15s;border:1px solid transparent;position:relative}
.btn-action input[type=file]{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.btn-camera{background:#e7f3ec;color:#1c5e3d;border-color:#b9ddc9}
.btn-camera:hover{background:#d5ebde}
.btn-upload{background:#f3f5f1;color:var(--ink);border-color:#d0d7cf}
.btn-upload:hover{background:#e8ece5}
.btn-add-doc{background:#e9f1fa;color:#1d5b96;border-color:#bad5f0}
.btn-add-doc:hover{background:#d5e6f7}

.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:10px 14px;margin:16px 0;background:#f8faf6;padding:14px;border-radius:12px;border:1px solid #e2e7df}
.grid3 p{margin:0}
.grid3 small{color:var(--muted);font-size:12px}
.grid3 b{font-size:14px;color:var(--ink)}

/* Documents Section */
.documents-list{display:grid;gap:8px;margin:12px 0}
.doc-item{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:12px;background:#f8faf6;border:1px solid #e1e7de;transition:border-color .15s}
.doc-item:hover{border-color:#cad6c6}
.doc-icon{padding:5px 9px;border-radius:7px;background:#e53935;color:#fff;font-size:11px;font-weight:800;letter-spacing:.05em;white-space:nowrap}
.doc-info{flex:1;min-width:0;display:grid}
.doc-title{font-weight:700;color:var(--ink);text-decoration:none;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.doc-title:hover{color:var(--green);text-decoration:underline}
.doc-meta{color:var(--muted);font-size:12px;margin-top:2px}
.doc-actions{display:flex;align-items:center;gap:8px}
.btn-doc-view{display:inline-flex;align-items:center;padding:5px 10px;border-radius:7px;background:#27734d;color:#fff;font-size:12px;font-weight:600;text-decoration:none;transition:filter .15s}
.btn-doc-view:hover{filter:brightness(1.15)}
.btn-doc-delete{padding:0;width:26px;height:26px;border-radius:50%;background:#ebeee8;color:#556;font-size:16px;display:grid;place-items:center;border:0;cursor:pointer;transition:background .15s,color .15s}
.btn-doc-delete:hover{background:#f6dddd;color:#a43e39}
.docs-empty{padding:18px;border:1px dashed #cad2cb;border-radius:11px;text-align:center;color:var(--muted);font-size:13px}

.doc-quick-tags{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:4px 0 14px}
.doc-quick-tags span{font-size:12px;color:var(--muted)}
.tag-btn{padding:4px 10px;border-radius:7px;background:#edf2ec;color:#284e36;font-size:12px;border:1px solid #c9d7c7;cursor:pointer}
.tag-btn:hover{background:#d9e6d7}
.doc-file-picker{display:flex;flex-direction:column;gap:4px;padding:16px;border:2px dashed #bdc9c0;border-radius:12px;background:#f6f8f4;cursor:pointer;text-align:center}
.doc-file-picker:hover{border-color:var(--green);background:#eff6ee}
.doc-file-picker input{position:absolute;width:1px;height:1px;opacity:0}

/* Lightbox Photo Viewer */
.photo-viewer-dialog:not([open]){display:none!important}
.photo-viewer-dialog[open]{width:100vw!important;height:100vh!important;max-width:100vw!important;max-height:100vh!important;margin:0!important;padding:0!important;border:0!important;border-radius:0!important;background:rgba(10,18,14,0.95)!important;backdrop-filter:blur(8px);position:fixed!important;inset:0!important;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;z-index:9999!important;overflow:hidden!important}
.photo-viewer-dialog::backdrop{background:rgba(0,0,0,0.88)}
.photo-viewer-body{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;height:100%;padding:40px 20px;box-sizing:border-box}
.photo-viewer-body img{max-width:min(1200px,92vw);max-height:82vh;object-fit:contain;border-radius:12px;box-shadow:0 15px 50px rgba(0,0,0,0.6)}
.photo-viewer-caption{margin-top:14px;color:#e5ece6;font-size:15px;font-weight:600;text-align:center;text-shadow:0 2px 4px rgba(0,0,0,0.8)}
.photo-viewer-close{position:fixed!important;top:20px!important;right:24px!important;width:44px!important;height:44px!important;border-radius:50%!important;background:rgba(255,255,255,0.2)!important;backdrop-filter:blur(6px)!important;color:#ffffff!important;border:1px solid rgba(255,255,255,0.25)!important;font-size:26px!important;font-weight:300!important;display:flex!important;align-items:center!important;justify-content:center!important;cursor:pointer!important;z-index:10001!important;transition:background .18s,transform .18s!important;box-shadow:0 4px 15px rgba(0,0,0,0.4)!important}
.photo-viewer-close:hover{background:rgba(255,255,255,0.4)!important;transform:scale(1.08)!important}

@media(max-width:600px){
  .photos{grid-template-columns:1fr 1fr}
  .grid3{grid-template-columns:1fr 1fr}
  .card-section-head{flex-direction:column;align-items:flex-start}
}
@media(max-width:400px){
  .grid3{grid-template-columns:1fr}
}
