/* ITDA v30.65 · Bible Life Line */
.lifeline-page{width:100%;max-width:1240px;margin:0 auto;padding:2px 0 28px}
.lifeline-page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:18px}
.lifeline-page-head h1{margin:2px 0 5px;font-size:31px;line-height:1.15;letter-spacing:-.03em;color:#0f172a}
.lifeline-page-head .page-desc{margin:0;color:#64748b;font-size:13px}
.lifeline-create-btn{min-width:92px;justify-content:center}
.lifeline-list-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 1px 12px;color:#94a3b8;font-size:11px}
.lifeline-list-meta strong{color:#334155}

.lifeline-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.lifeline-card{appearance:none;width:100%;min-width:0;padding:0;border:1px solid #e2e8f0;border-radius:18px;background:#fff;overflow:hidden;text-align:left;color:inherit;box-shadow:0 8px 24px rgba(15,23,42,.045);cursor:pointer;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
.lifeline-card:hover{transform:translateY(-3px);border-color:#cbd5e1;box-shadow:0 16px 34px rgba(15,23,42,.09)}
.lifeline-card:focus-visible{outline:3px solid rgba(37,99,235,.2);outline-offset:2px}
.lifeline-card-media{position:relative;display:block;width:100%;aspect-ratio:16/10;overflow:hidden;background:linear-gradient(135deg,#eef2ff,#f8fafc)}
.lifeline-card-media img{width:100%;height:100%;display:block;object-fit:cover;transition:transform .28s ease}
.lifeline-card:hover .lifeline-card-media img{transform:scale(1.025)}
.lifeline-card-empty{position:absolute;inset:0;display:grid;place-items:center;font-weight:800;letter-spacing:.14em;color:#94a3b8;font-size:14px}
.lifeline-new-badge{position:absolute;left:10px;top:10px;z-index:2;display:inline-flex;align-items:center;justify-content:center;min-width:42px;height:24px;padding:0 9px;border-radius:999px;background:#ef4444;color:#fff;font-size:9px;font-weight:900;letter-spacing:.08em;box-shadow:0 6px 16px rgba(15,23,42,.18)}
.lifeline-image-count{position:absolute;right:10px;bottom:10px;display:inline-flex;align-items:center;gap:4px;padding:5px 8px;border-radius:999px;background:rgba(15,23,42,.74);color:#fff;font-size:10px;font-weight:700;backdrop-filter:blur(6px)}
.lifeline-card-body{display:flex;flex-direction:column;min-height:138px;padding:15px 16px 14px}
.lifeline-card-title{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#0f172a;font-size:15px;line-height:1.4;letter-spacing:-.015em}
.lifeline-card-description{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:35px;margin-top:6px;color:#64748b;font-size:11px;line-height:1.58;white-space:normal}
.lifeline-card-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:auto;padding-top:12px;border-top:1px solid #f1f5f9;color:#94a3b8;font-size:9px}
.lifeline-card-meta span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lifeline-card-meta time{flex:0 0 auto}

.lifeline-empty{min-height:360px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;border:1px dashed #cbd5e1;border-radius:20px;background:#fff;color:#64748b}
.lifeline-empty-icon{width:58px;height:58px;display:grid;place-items:center;margin-bottom:14px;border-radius:18px;background:#f1f5f9;color:#64748b;font-size:26px}
.lifeline-empty h2{margin:0;color:#334155;font-size:17px}
.lifeline-empty p{margin:7px 0 18px;font-size:12px}

.lifeline-pagination{display:flex;align-items:center;justify-content:center;gap:6px;margin-top:24px}
.lifeline-pagination .page-btn{width:34px;height:34px;display:grid;place-items:center;border:1px solid #e2e8f0;border-radius:10px;background:#fff;color:#475569;font-size:11px;text-decoration:none;transition:.15s ease}
.lifeline-pagination .page-btn:hover{border-color:#cbd5e1;background:#f8fafc}
.lifeline-pagination .page-btn.active{border-color:#2563eb;background:#2563eb;color:#fff;font-weight:700}
.lifeline-pagination .page-gap{width:22px;text-align:center;color:#94a3b8}

body.lifeline-detail-open{overflow:hidden}
.lifeline-detail-backdrop{z-index:1200;padding:24px}
.lifeline-detail-modal{width:min(820px,92vw);height:min(94vh,940px);max-height:min(94vh,940px);display:flex;flex-direction:column;overflow:hidden;border-radius:22px;background:#fff;box-shadow:0 28px 80px rgba(15,23,42,.28)}
.lifeline-modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:18px 20px 14px;border-bottom:1px solid #eef2f7}
.lifeline-modal-heading{min-width:0}
.lifeline-modal-heading h2{margin:2px 0 4px;color:#0f172a;font-size:22px;line-height:1.3;letter-spacing:-.025em}
.lifeline-detail-meta{margin:0;color:#94a3b8;font-size:10px}
.lifeline-modal-body{padding:0;overflow:auto;flex:1 1 auto;min-height:0;max-height:none}
.lifeline-slider{padding:18px 20px 12px;background:#0f172a}
.lifeline-slider-stage{position:relative;width:100%;height:min(66vh,650px);min-height:420px;display:flex;align-items:center;justify-content:center;overflow:hidden;border-radius:14px;background:#020617}
.lifeline-slider-stage img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;opacity:0;transition:opacity .18s ease}
.lifeline-slider-stage img.ready{opacity:1}
.lifeline-slider-loading{position:absolute;inset:0;display:grid;place-items:center;color:#94a3b8;font-size:12px;text-align:center;padding:20px}
.lifeline-slider-loading[hidden]{display:none!important}
.lifeline-slide-nav{position:absolute;top:50%;width:44px;height:56px;transform:translateY(-50%);display:grid;place-items:center;border:0;border-radius:12px;background:rgba(15,23,42,.56);color:#fff;font-size:34px;line-height:1;cursor:pointer;backdrop-filter:blur(8px);transition:.15s ease}
.lifeline-slide-nav:hover{background:rgba(30,41,59,.9)}
.lifeline-slide-nav.prev{left:12px}.lifeline-slide-nav.next{right:12px}
.lifeline-slide-counter{position:absolute;right:12px;top:12px;padding:5px 9px;border-radius:999px;background:rgba(15,23,42,.68);color:#fff;font-size:10px;font-weight:700;backdrop-filter:blur(8px)}
.lifeline-slide-dots{min-height:24px;display:flex;align-items:center;justify-content:center;gap:6px;padding-top:10px;overflow-x:auto}
.lifeline-dot{width:7px;height:7px;flex:0 0 auto;padding:0;border:0;border-radius:50%;background:#64748b;cursor:pointer;transition:.15s ease}
.lifeline-dot.active{width:20px;border-radius:999px;background:#fff}
.lifeline-detail-copy{padding:20px 22px 24px;color:#334155;font-size:13px;line-height:1.85;white-space:pre-wrap;word-break:break-word;background:#fff}
.lifeline-modal-foot{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:12px 20px;border-top:1px solid #eef2f7;background:#fff}

.lifeline-form{width:min(820px,100%);margin:0 auto;overflow:hidden;border-radius:18px}
.lifeline-form-intro{display:flex;align-items:center;gap:14px;padding:18px 20px;border-bottom:1px solid #eef2f7;background:linear-gradient(135deg,#fff,#f8fafc)}
.lifeline-form-intro h1{margin:1px 0 3px;color:#0f172a;font-size:22px;line-height:1.25}
.lifeline-form-intro small{color:#64748b;font-size:10px}
.lifeline-form-mark{width:46px;height:46px;flex:0 0 auto;display:grid;place-items:center;border-radius:15px;background:#0f172a;color:#fff;font-weight:800;font-size:13px;letter-spacing:.08em}
.lifeline-form-body{display:grid;gap:18px;padding:20px}
.lifeline-form .field{display:grid;gap:7px}
.lifeline-form .field>span{color:#334155;font-size:11px;font-weight:700}
.lifeline-form .field>span small{margin-left:4px;color:#94a3b8;font-weight:500}
.required-mark{color:#ef4444}
.lifeline-description{min-height:150px;resize:vertical;line-height:1.7}
.lifeline-form-error{padding:11px 13px;border:1px solid #fecaca;border-radius:11px;background:#fef2f2;color:#b91c1c;font-size:11px;font-weight:600}
.lifeline-upload-box{min-height:88px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;border:1.5px dashed #bfdbfe;border-radius:14px;background:#f8fbff;color:#1d4ed8;cursor:pointer;transition:.15s ease}
.lifeline-upload-box:hover{border-color:#60a5fa;background:#eff6ff}
.lifeline-upload-box strong{font-size:12px}.lifeline-upload-box small{color:#64748b;font-size:9px;font-weight:500}
.lifeline-file-input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.lifeline-form-help{color:#94a3b8;font-size:9px}
.lifeline-new-preview,.lifeline-existing-images{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}
.lifeline-preview-item,.lifeline-existing-image{position:relative;overflow:hidden;border:1px solid #e2e8f0;border-radius:11px;background:#f8fafc;aspect-ratio:1/1}
.lifeline-preview-item img,.lifeline-existing-image img{width:100%;height:100%;display:block;object-fit:cover}
.lifeline-preview-item span{position:absolute;left:7px;top:7px;width:22px;height:22px;display:grid;place-items:center;border-radius:50%;background:rgba(15,23,42,.72);color:#fff;font-size:9px;font-weight:700}
.lifeline-existing-image{cursor:pointer}
.lifeline-existing-image span{position:absolute;left:6px;right:6px;bottom:6px;display:flex;align-items:center;gap:5px;padding:6px 7px;border-radius:8px;background:rgba(15,23,42,.76);color:#fff;font-size:9px;backdrop-filter:blur(6px)}
.lifeline-existing-image input{accent-color:#ef4444}
.lifeline-form-foot{position:sticky;bottom:0;z-index:2;background:#fff}

@media(max-width:980px){
  .lifeline-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .lifeline-new-preview,.lifeline-existing-images{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:680px){
  .lifeline-page{padding-bottom:18px}
  .lifeline-page-head{align-items:flex-start;margin-bottom:14px}
  .lifeline-page-head h1{font-size:25px}
  .lifeline-page-head .page-desc{font-size:11px}
  .lifeline-create-btn{min-width:auto;padding-left:13px;padding-right:13px}
  .lifeline-grid{grid-template-columns:1fr;gap:13px}
  .lifeline-card-media{aspect-ratio:16/9}
  .lifeline-card-body{min-height:124px}
  .lifeline-detail-backdrop{padding:0}
  .lifeline-detail-modal{width:100vw;height:100dvh;max-height:none;border-radius:0}
  .lifeline-modal-head{padding:14px 14px 11px}
  .lifeline-modal-heading h2{font-size:18px}
  .lifeline-modal-body{max-height:calc(100dvh - 120px)}
  .lifeline-slider{padding:10px 0 8px}
  .lifeline-slider-stage{height:54vh;min-height:300px;border-radius:0}
  .lifeline-slide-nav{width:38px;height:50px;border-radius:10px;font-size:30px}
  .lifeline-slide-nav.prev{left:8px}.lifeline-slide-nav.next{right:8px}
  .lifeline-detail-copy{padding:17px 15px 22px;font-size:12px}
  .lifeline-modal-foot{padding:10px 14px}
  .lifeline-form-intro{padding:15px 14px}
  .lifeline-form-body{padding:16px 14px;gap:16px}
  .lifeline-new-preview,.lifeline-existing-images{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* Life Line · full-third navigation and mouse/touch swipe */
#lifeLineDetailModal .lifeline-slider-stage{touch-action:pan-y pinch-zoom!important;user-select:none;-webkit-user-select:none}
#lifeLineSlideImage{-webkit-user-drag:none;pointer-events:none}
#lifeLineDetailModal .lifeline-slide-nav{top:0;bottom:0;width:33.333333%;height:100%;transform:none;border:0;border-radius:0;box-shadow:none;background:transparent;backdrop-filter:none;padding:0;display:flex;align-items:center;transition:none;z-index:2;touch-action:pan-y pinch-zoom}
#lifeLineDetailModal .lifeline-slide-nav.prev{left:0;right:auto;justify-content:flex-start;padding-left:12px}
#lifeLineDetailModal .lifeline-slide-nav.next{right:0;left:auto;justify-content:flex-end;padding-right:12px}
#lifeLineDetailModal .lifeline-slide-nav[hidden]{display:none!important}
#lifeLineDetailModal .lifeline-slide-nav>span{display:grid;place-items:center;width:44px;height:56px;flex-shrink:0;border-radius:12px;background:rgba(15,23,42,.65);color:#fff;font-size:34px;line-height:1;opacity:0;transform:scale(.9);transition:opacity .2s ease,transform .2s ease;pointer-events:none}
#lifeLineDetailModal .lifeline-slide-nav:focus-visible>span{opacity:1;transform:scale(1)}
#lifeLineDetailModal .lifeline-slider-stage.lifeline-dragging{cursor:grabbing}
#lifeLineDetailModal .lifeline-slider-stage.lifeline-dragging .lifeline-slide-nav{cursor:grabbing}
#lifeLineDetailModal .lifeline-slide-counter{z-index:3;pointer-events:none}
@media(hover:hover){
  #lifeLineDetailModal .lifeline-slide-nav:hover>span{opacity:1;transform:scale(1)}
  #lifeLineDetailModal .lifeline-slider-stage.lifeline-dragging .lifeline-slide-nav>span{opacity:0}
}
@media(max-width:680px){
  #lifeLineDetailModal .lifeline-slide-nav.prev{padding-left:8px}
  #lifeLineDetailModal .lifeline-slide-nav.next{padding-right:8px}
  #lifeLineDetailModal .lifeline-slide-nav>span{width:38px;height:50px;border-radius:10px;font-size:30px}
}
@media(prefers-reduced-motion:reduce){#lifeLineDetailModal .lifeline-slide-nav>span{transition:none}}

/* 현재 이미지와 양옆 이미지를 같은 레일처럼 움직인다. */
#lifeLineDetailModal .lifeline-slider-stage>img{
  position:absolute;inset:0;width:100%;height:100%;max-width:100%;max-height:100%;
  object-fit:contain;pointer-events:none;-webkit-user-drag:none;will-change:transform;
}
#lifeLineDetailModal .lifeline-slider-stage>.lifeline-neighbor{opacity:1}
#lifeLineDetailModal .lifeline-slider-stage>.lifeline-neighbor[hidden]{display:none!important}
#lifeLineDetailModal .lifeline-slider-loading{z-index:1;pointer-events:none}
.lifeline-card-views{display:block;margin-top:6px;color:var(--itda-custom-muted,#64748b);font-size:12px;font-weight:400;text-align:right}
