/* Kyu TKD Portal - athlete channel viewer (v0.14). Lovable layout, teal brand. */
.kyu-vw { --teal:#0d5c63; --teal2:#16a085; --bg:#eef6f5; --line:#d7e6e3; --muted:#5b7176; --ink:#13343b;
	font-family: inherit; color:var(--ink); max-width:1180px; }
.kyu-vw * { box-sizing:border-box; }
.kyu-vw-loading { padding:40px; text-align:center; color:var(--muted); }

/* Channel header */
.kyu-vw-head { display:flex; align-items:center; gap:16px; flex-wrap:wrap; padding:18px 4px 6px; }
.kyu-vw-avatar { width:64px; height:64px; border-radius:50%; background:linear-gradient(135deg,var(--teal2),var(--teal));
	color:#fff; display:flex; align-items:center; justify-content:center; font-weight:700; font-size:1.3rem; flex:0 0 auto;
	overflow:hidden; }
.kyu-vw-avatar img { width:100%; height:100%; object-fit:cover; }
.kyu-vw-htext { flex:1; min-width:180px; }
.kyu-vw-htext h2 { margin:0; font-size:1.5rem; color:var(--ink); line-height:1.2; }
.kyu-vw-counts { margin:4px 0 0; color:var(--muted); font-size:.85rem; }
.kyu-vw-switch { display:flex; align-items:center; gap:8px; }
.kyu-vw-switch label { font-size:.78rem; font-weight:600; color:var(--muted); }
.kyu-vw-switch select { padding:9px 11px; border:1px solid #c8d8d6; border-radius:9px; font-size:.92rem; background:#fff; }

/* Tabs */
.kyu-vw-tabs { display:flex; gap:6px; border-bottom:1px solid var(--line); margin:14px 0 16px; }
.kyu-vw-tab { background:none; border:0; padding:10px 14px; font-size:.92rem; font-weight:600; color:var(--muted);
	cursor:pointer; border-bottom:2px solid transparent; margin-bottom:-1px; }
.kyu-vw-tab.active { color:var(--teal); border-bottom-color:var(--teal); }
.kyu-vw-tab .kyu-vw-pill { display:inline-block; background:var(--bg); color:var(--teal); border-radius:10px;
	padding:0 7px; font-size:.72rem; margin-left:5px; }

/* Filters */
.kyu-vw-filters { display:flex; gap:10px; flex-wrap:wrap; margin-bottom:16px; }
.kyu-vw-filters select, .kyu-vw-filters input { padding:9px 11px; border:1px solid #c8d8d6; border-radius:9px;
	font-size:.9rem; background:#fff; }
.kyu-vw-filters input { flex:1; min-width:180px; }
.kyu-vw-filters select:focus, .kyu-vw-filters input:focus { outline:none; border-color:var(--teal2);
	box-shadow:0 0 0 3px rgba(22,160,133,.15); }

/* Grid */
.kyu-vw-grid { display:grid; gap:18px; grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); }
.kyu-vw-card { background:#fff; border:1px solid var(--line); border-radius:12px; overflow:hidden; cursor:pointer;
	transition:transform .12s, box-shadow .12s, border-color .12s; }
.kyu-vw-card:hover { transform:translateY(-2px); box-shadow:0 6px 18px rgba(13,92,99,.12); border-color:var(--teal2); }
.kyu-vw-poster { position:relative; aspect-ratio:16/9; background:linear-gradient(135deg,#0d5c63,#16a085); overflow:hidden; }
.kyu-vw-poster img { width:100%; height:100%; object-fit:cover; }
.kyu-vw-poster .kyu-vw-play { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; pointer-events:none; }
.kyu-vw-poster .kyu-vw-play span { width:56px; height:56px; border-radius:50%; background:rgba(15,23,28,.55);
	display:flex; align-items:center; justify-content:center; box-shadow:0 2px 14px rgba(0,0,0,.35);
	transition:background .15s ease, transform .15s ease; }
.kyu-vw-poster .kyu-vw-play svg { width:24px; height:24px; fill:#fff; margin-left:3px; }
.kyu-vw-card:hover .kyu-vw-play span { background:var(--teal); transform:scale(1.08); }
.kyu-vw-proc { background:#fff8e1; border:1px solid #f3d27a; color:#7a5c00; padding:9px 12px; border-radius:8px; font-size:.85rem; line-height:1.35; margin:0 0 10px; }
.kyu-vw-disc { position:absolute; top:8px; left:8px; font-size:.66rem; font-weight:700; text-transform:uppercase;
	letter-spacing:.04em; color:#fff; background:rgba(0,0,0,.45); padding:3px 8px; border-radius:6px; }
.kyu-vw-badge { position:absolute; bottom:8px; right:8px; font-size:.72rem; font-weight:600; color:#fff;
	background:rgba(0,0,0,.6); padding:2px 8px; border-radius:6px; }
.kyu-vw-info { padding:11px 13px 14px; }
.kyu-vw-info h4 { margin:0; font-size:.92rem; line-height:1.25; color:var(--ink);
	display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.kyu-vw-info .kyu-vw-sub { margin:5px 0 0; font-size:.78rem; color:var(--muted); display:flex; align-items:center; gap:5px; }

/* Photos grid */
.kyu-vw-photos { display:grid; gap:10px; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); }
.kyu-vw-photo { aspect-ratio:1/1; border-radius:10px; overflow:hidden; background:var(--bg); cursor:pointer;
	border:1px solid var(--line); display:flex; align-items:center; justify-content:center; }
.kyu-vw-photo img { width:100%; height:100%; object-fit:cover; }
.kyu-vw-photo .kyu-vw-ph { color:var(--muted); font-size:.7rem; padding:6px; text-align:center; word-break:break-word; }

/* Empty / status */
.kyu-vw-empty { text-align:center; padding:48px 16px; color:var(--muted); border:1px dashed var(--line);
	border-radius:12px; }
.kyu-vw-empty .kyu-vw-ico { font-size:2rem; opacity:.5; }
.kyu-vw-err { color:#b3261e; padding:12px; background:#fdf3f3; border:1px solid #f2c4c0; border-radius:9px; }

/* Skeletons */
.kyu-vw-sk { background:#fff; border:1px solid var(--line); border-radius:12px; overflow:hidden; }
.kyu-vw-sk .kyu-vw-skbar { background:linear-gradient(90deg,#eef3f2,#e2ecea,#eef3f2); background-size:200% 100%;
	animation:kyuvwsk 1.2s infinite; }
.kyu-vw-sk .kyu-vw-skp { aspect-ratio:16/9; } .kyu-vw-sk .kyu-vw-skl { height:14px; margin:11px 13px; border-radius:4px; }
@keyframes kyuvwsk { 0%{background-position:200% 0;} 100%{background-position:-200% 0;} }

/* Player / lightbox modal */
.kyu-vw-modal { position:fixed; inset:0; background:rgba(8,20,22,.82); z-index:99999; display:flex;
	align-items:center; justify-content:center; padding:18px; }
.kyu-vw-modal-inner { background:#0e1c1e; border-radius:14px; width:min(1000px,100%); max-height:92vh; overflow:auto;
	box-shadow:0 20px 60px rgba(0,0,0,.5); }
.kyu-vw-modal video { width:100%; max-height:62vh; background:#000; display:block; border-radius:14px 14px 0 0; }
.kyu-vw-modal img { width:100%; max-height:80vh; object-fit:contain; background:#000; display:block; border-radius:14px; }
.kyu-vw-modal-body { padding:14px 18px 18px; color:#dfeceb; }
.kyu-vw-modal-body h3 { margin:0 0 3px; font-size:1.1rem; color:#fff; }
.kyu-vw-modal-body .kyu-vw-msub { color:#9fb6b4; font-size:.85rem; margin:0 0 12px; }
.kyu-vw-rounds { display:flex; gap:8px; flex-wrap:wrap; }
.kyu-vw-round { background:#14302f; color:#cfe4e2; border:1px solid #1f4543; border-radius:8px; padding:7px 12px;
	font-size:.82rem; font-weight:600; cursor:pointer; }
.kyu-vw-round.active { background:var(--teal2); color:#fff; border-color:var(--teal2); }
.kyu-vw-close { position:fixed; top:16px; right:18px; width:40px; height:40px; border-radius:50%; border:0;
	background:rgba(255,255,255,.14); color:#fff; font-size:1.4rem; cursor:pointer; z-index:100000; }
.kyu-vw-close:hover { background:rgba(255,255,255,.28); }
.kyu-vw-msg { color:#9fb6b4; font-size:.85rem; padding:10px 0; }

@media (max-width:560px){ .kyu-vw-head h2{ font-size:1.25rem; } .kyu-vw-grid{ grid-template-columns:repeat(auto-fill,minmax(160px,1fr)); } }

/* Lazy first-frame video poster */
.kyu-vw-postervid { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; background:#000; }

/* Real (OOTB-cached) thumbnail poster */
.kyu-vw-postimg { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; }

/* Photo download button */
.kyu-vw-dlrow { margin-top:12px; }
.kyu-vw-dl { display:inline-block; background:var(--teal2); color:#fff; text-decoration:none; padding:9px 16px; border-radius:8px; font-size:.85rem; font-weight:600; }
.kyu-vw-dl:hover { background:var(--teal); color:#fff; }

/* Lightbox prev/next navigation */
.kyu-vw-nav { position:fixed; top:50%; transform:translateY(-50%); z-index:100001; width:46px; height:70px; border:0;
	background:rgba(255,255,255,.16); color:#fff; font-size:2rem; line-height:1; cursor:pointer; border-radius:10px; }
.kyu-vw-nav:hover { background:rgba(255,255,255,.32); }
.kyu-vw-nav.prev { left:16px; } .kyu-vw-nav.next { right:16px; }
@media (max-width:560px){ .kyu-vw-nav { width:38px; height:56px; font-size:1.5rem; } .kyu-vw-nav.prev{left:6px;} .kyu-vw-nav.next{right:6px;} }

.kyu-vw-refresh{align-self:center;background:#fff;border:1px solid var(--teal,#0f766e);color:var(--teal,#0f766e);border-radius:9px;padding:9px 14px;font-size:.9rem;font-weight:600;cursor:pointer;white-space:nowrap}
.kyu-vw-refresh:hover{background:var(--teal,#0f766e);color:#fff}
.kyu-vw-refresh:disabled{opacity:.6;cursor:default}

.kyu-vw-admin{margin-top:14px;border-top:1px solid #244;padding-top:12px}
.kyu-vw-del{background:#7f1d1d;border:1px solid #b91c1c;color:#fff;border-radius:8px;padding:8px 14px;font-size:.85rem;font-weight:600;cursor:pointer}
.kyu-vw-del:hover{background:#b91c1c}
.kyu-vw-del:disabled{opacity:.6;cursor:default}

/* My uploads (parent self-service) */
.kyu-myup-h { margin:0 0 12px; }
.kyu-myup-empty { color:#555; }
.kyu-myup-status { position:absolute; top:8px; right:8px; font-size:.64rem; font-weight:700; text-transform:uppercase; letter-spacing:.03em; color:#fff; padding:3px 8px; border-radius:6px; }
.kyu-myup-ready { background:#137333; }
.kyu-myup-proc { background:#b8860b; }
.kyu-myup-drop { background:#555; }
.kyu-myup-card { cursor:default; }
.kyu-myup-card .kyu-vw-info { display:flex; flex-direction:column; align-items:flex-start; gap:6px; }
.kyu-myup-del { background:#c0392b; color:#fff; border:0; border-radius:6px; padding:6px 12px; font-size:.8rem; cursor:pointer; }
.kyu-myup-del:hover { background:#a93226; }
.kyu-myup-del:disabled { opacity:.6; cursor:default; }
.kyu-myup-filter { display:flex; gap:8px; flex-wrap:wrap; margin:0 0 16px; }
.kyu-myup-fbtn { background:#eef2f3; border:1px solid #d4e0e2; color:#3a565b; border-radius:999px; padding:6px 16px; font-size:.85rem; font-weight:600; cursor:pointer; }
.kyu-myup-fbtn:hover { background:#e2eaec; }
.kyu-myup-fbtn.active { background:#3a565b; color:#fff; border-color:#3a565b; }

/* ---- Portal auth forms (kyu_register / kyu_login) ---- */
.kyu-auth{max-width:480px;margin:0 auto;}
.kyu-auth-form p{margin:0 0 14px;}
.kyu-auth-form label{font-weight:600;display:block;}
.kyu-auth-form input[type=text],.kyu-auth-form input[type=email],.kyu-auth-form input[type=password]{width:100%;padding:10px;border:1px solid #c7ccd1;border-radius:8px;font-size:15px;box-sizing:border-box;}
.kyu-auth-hint{display:block;color:#6b7280;font-size:12px;margin-top:4px;}
.kyu-btn{display:inline-block;background:#137333;color:#fff;border:0;border-radius:8px;padding:11px 20px;font-size:15px;font-weight:600;cursor:pointer;text-decoration:none;}
.kyu-btn:hover{background:#0e5a28;}
.kyu-auth-err{background:#fdecec;border:1px solid #f5c2c2;color:#b32d2e;padding:10px 14px;border-radius:8px;margin-bottom:16px;}
.kyu-auth-err ul{margin:0;padding-left:18px;}
.kyu-auth-ok{background:#e8f5ec;border:1px solid #b7e0c4;color:#137333;padding:14px 16px;border-radius:8px;}
.kyu-auth-links{margin-top:14px;font-size:13px;}
