:root{--bg:#f4f7fb;--card:#fff;--text:#172033;--muted:#687386;--primary:#2563eb;--danger:#c62828;--ok:#18794e;--border:#dce3ee}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:16px/1.5 system-ui,-apple-system,Segoe UI,sans-serif}header{background:#111827;color:#fff;padding:.8rem max(1rem,calc((100% - 1180px)/2));display:flex;gap:2rem;align-items:center;justify-content:space-between;flex-wrap:wrap}.brand{font-size:1.2rem;font-weight:800;color:#fff;text-decoration:none}nav{display:flex;gap:1rem;align-items:center;flex-wrap:wrap}nav a,nav span{color:#e5e7eb;text-decoration:none}main{width:min(1180px,calc(100% - 2rem));margin:2rem auto;min-height:70vh}h1{line-height:1.15}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1.2rem}.card{background:var(--card);border:1px solid var(--border);border-radius:14px;overflow:hidden;box-shadow:0 3px 15px #2030500c}.card-body{padding:1rem}.cover,.photo{display:block;width:100%;height:220px;object-fit:cover;background:#dbe3ef}.placeholder{height:220px;display:grid;place-items:center;background:#dbe3ef;color:var(--muted)}.folder-icon{font-size:4rem}.breadcrumb{background:#fff;border:1px solid var(--border);border-radius:8px;padding:.75rem;overflow-wrap:anywhere}.button,button{display:inline-block;border:0;border-radius:8px;background:var(--primary);color:#fff!important;padding:.65rem 1rem;text-decoration:none;cursor:pointer;font-weight:650}.button.small{padding:.35rem .7rem}.danger{background:var(--danger)}form.panel,.panel{max-width:720px;background:#fff;padding:1.4rem;border:1px solid var(--border);border-radius:14px}label{display:block;font-weight:650;margin-top:1rem}input,select,textarea{width:100%;padding:.75rem;border:1px solid #b8c2d1;border-radius:8px;font:inherit}textarea{min-height:100px}button{margin-top:1rem}.alert{padding:.85rem 1rem;border-radius:8px;margin:1rem 0}.alert.error{background:#fee2e2;color:#8b1a1a}.alert.success{background:#d9fbe8;color:#11623e}.muted{color:var(--muted)}table{width:100%;border-collapse:collapse;background:#fff}th,td{text-align:left;padding:.75rem;border-bottom:1px solid var(--border)}.actions{display:flex;gap:.5rem;flex-wrap:wrap}.photo-card{position:relative}.photo-card form{padding:0 1rem 1rem}.meta{display:flex;justify-content:space-between;gap:1rem;color:var(--muted);font-size:.9rem}footer{text-align:center;color:var(--muted);padding:2rem}@media(max-width:650px){header{align-items:flex-start;flex-direction:column;gap:.5rem}nav{gap:.7rem}.cover,.photo,.placeholder{height:190px}table{display:block;overflow-x:auto}}
.pending-watermark{position:absolute;z-index:2;top:92px;left:-12%;width:124%;padding:.65rem .3rem;background:rgba(185,28,28,.82);color:#fff;text-align:center;font-weight:900;letter-spacing:.08em;transform:rotate(-8deg);pointer-events:none;text-shadow:0 1px 2px #000;box-shadow:0 2px 8px #0005}
.pending-watermark+a img,.pending-watermark+video{filter:blur(16px) brightness(.65);transform:scale(1.1)}.progress-area{margin:1.2rem 0;padding:1rem;background:#eef3fa;border-radius:10px}.progress-area progress,.file-progress progress{display:block;width:100%;height:18px;margin:.35rem 0}.file-progress{margin-top:.8rem;padding:.7rem;background:#fff;border:1px solid var(--border);border-radius:8px}.file-progress-head{display:flex;justify-content:space-between;gap:1rem;overflow-wrap:anywhere}.file-progress small{color:var(--muted)}.file-progress.success{border-color:#35a66f}.file-progress.failed{border-color:#d64545}.file-progress.failed small{color:#a51d1d}
.admin-review .pending-watermark+a img,.admin-review .pending-watermark+video{filter:none;transform:none}
.queue-summary{position:sticky;top:0;z-index:3;display:flex;justify-content:center;gap:.55rem;margin:.8rem 0;padding:.7rem;background:#dbeafe;border:1px solid #93c5fd;border-radius:8px;color:#1e3a8a}.file-progress[data-state="sending"]{border-color:var(--primary);box-shadow:0 0 0 2px #2563eb22}.file-progress[data-state="finished"]{opacity:.72}
.pending-video-placeholder{height:220px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:.5rem;padding:1rem;background:#2d3442;color:#fff;text-align:center}.pending-video-placeholder span{font-size:.9rem;color:#d8dee9}.slideshow{max-width:900px;margin:1.5rem auto 2rem;background:#111827;border-radius:14px;overflow:hidden;box-shadow:0 8px 30px #11182733}.slideshow-stage{position:relative;aspect-ratio:16/10;background:#05070b}.slideshow-slide{display:none;width:100%;height:100%;margin:0;position:absolute;inset:0}.slideshow-slide.active{display:block}.slideshow-slide img{width:100%;height:100%;display:block;object-fit:contain}.slideshow-slide figcaption{position:absolute;left:0;right:0;bottom:0;padding:1rem;color:#fff;background:linear-gradient(transparent,#000c);text-align:center}.slideshow-controls{display:flex;align-items:center;justify-content:center;gap:1rem;padding:.7rem;color:#fff}.slideshow-controls button{margin:0;min-width:48px;padding:.45rem .8rem}.slideshow-controls span{min-width:70px;text-align:center}@media(max-width:650px){.slideshow-stage{aspect-ratio:4/3}.pending-video-placeholder{height:190px}}
.video-media{background:#111827;padding-bottom:.8rem}.video-media video{margin:0}.video-download{display:block;width:max-content;max-width:calc(100% - 2rem);margin:.8rem auto 0;color:#fff;background:var(--primary);padding:.55rem .9rem;border-radius:8px;text-decoration:none;font-weight:650}.video-error{margin:.8rem 1rem 0;padding:.65rem;background:#fee2e2;color:#8b1a1a;border-radius:8px;text-align:center}
.ftp-help pre{padding:1rem;background:#eef3fa;border-radius:8px;overflow:auto}.compact-list{display:flex;flex-direction:column;gap:.45rem}.ftp-files{display:grid;gap:1rem}.ftp-files .panel{max-width:none}.ftp-files h3{overflow-wrap:anywhere}
.review-js .fallback-review-actions{display:none}.review-modal{position:fixed;inset:0;z-index:1000;padding:2vh 2vw;background:#000d;overflow:auto}.review-modal[hidden]{display:none}.review-dialog{position:relative;width:min(1400px,96vw);min-height:94vh;margin:auto;display:grid;grid-template-columns:minmax(0,3fr) minmax(280px,1fr);background:#111827;border-radius:14px;overflow:hidden;box-shadow:0 20px 60px #000}.review-media{display:flex;align-items:center;justify-content:center;min-height:75vh;background:#05070b}.review-media img,.review-media video{display:block;max-width:100%;max-height:94vh;object-fit:contain}.review-information{padding:2rem;color:#fff}.review-information .muted{color:#cbd5e1}.review-close{position:absolute;z-index:2;top:.75rem;right:.75rem;margin:0;width:44px;height:44px;padding:0;border-radius:50%;font-size:1.7rem;background:#000a}.review-actions{display:flex;flex-direction:column;gap:.8rem;margin-top:2rem}.review-actions button{width:100%;margin:0}.review-actions .secondary{background:#64748b}.review-message{min-height:1.5rem;color:#fca5a5}.review-open{overflow:hidden}@media(max-width:800px){.review-modal{padding:0}.review-dialog{width:100%;min-height:100vh;grid-template-columns:1fr;border-radius:0}.review-media{min-height:55vh}.review-media img,.review-media video{max-height:60vh}.review-information{padding:1.2rem}}
.visit-stats{display:grid;grid-template-columns:repeat(2,minmax(180px,280px));gap:1rem}.visit-stat{display:flex;flex-direction:column;text-align:center}.visit-stat strong{font-size:2.2rem;color:var(--primary)}.visit-stat span{color:var(--muted)}.visit-history{margin-top:1rem;max-width:576px}.visit-history summary{cursor:pointer;font-weight:700}.visit-history table{margin-top:1rem}@media(max-width:500px){.visit-stats{grid-template-columns:1fr}}
