:root{font-family:system-ui,-apple-system,sans-serif;line-height:1.5;color:#e8e8e8;background:#0f1117}*{box-sizing:border-box}body{margin:0;min-height:100vh}a{color:#8fb4ff}#root{max-width:960px;margin:0 auto;padding:1.5rem 1.25rem 3rem}.app-shell{display:flex;flex-direction:column;gap:1.5rem}.app-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-bottom:1rem;border-bottom:1px solid #2a3142}.brand{display:flex;align-items:baseline;gap:.75rem}.brand a{font-size:1.25rem;font-weight:700;color:#fff;text-decoration:none}.brand-project{font-size:.75rem;color:#6b7280;background:#1a1f2e;border:1px solid #2a3142;padding:.15rem .45rem;border-radius:999px}.app-nav{display:flex;gap:.5rem}.app-nav a{text-decoration:none;color:#a8b0c0;padding:.45rem .75rem;border-radius:8px;font-size:.9rem}.app-nav a.active{background:#1a2744;color:#fff}.app-main{min-height:40vh}h1{font-size:1.5rem;font-weight:600;margin:0 0 .25rem}h2{font-size:1.1rem;margin:0 0 1rem}.subtitle{color:#8b92a5;margin:0 0 1.5rem;font-size:.9rem}form{display:flex;flex-direction:column;gap:1rem;max-width:560px}label{display:flex;flex-direction:column;gap:.35rem;font-size:.85rem;color:#a8b0c0}input[type=text],input[type=number],input[type=file]{padding:.6rem .75rem;border:1px solid #2a3142;border-radius:8px;background:#1a1f2e;color:#e8e8e8;font-size:1rem}button{margin-top:.5rem;padding:.75rem 1rem;border:none;border-radius:8px;background:#4f7cff;color:#fff;font-size:1rem;font-weight:600;cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}.actions-row{display:flex;gap:.75rem;align-items:center;margin-top:1rem}.link-button{color:#8fb4ff;font-size:.9rem}.progress-wrap{margin-top:1.5rem}.progress-bar{height:8px;background:#2a3142;border-radius:4px;overflow:hidden}.progress-fill{height:100%;background:#4f7cff;transition:width .2s ease}.progress-label{margin-top:.5rem;font-size:.85rem;color:#8b92a5}.status{margin-top:1rem;padding:.75rem 1rem;border-radius:8px;font-size:.9rem}.status.success{background:#1a3d2e;color:#6ee7a0}.status.error{background:#3d1a1a;color:#f87171}.status.info{background:#1a2a3d;color:#93c5fd}.badge{display:inline-block;padding:.2rem .55rem;border-radius:999px;font-size:.75rem;font-weight:600;white-space:nowrap}.badge.success{background:#1a3d2e;color:#6ee7a0}.badge.error{background:#3d1a1a;color:#f87171}.badge.info{background:#1a2744;color:#93c5fd}.badge.neutral{background:#2a3142;color:#c4cad6}.film-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.75rem}.film-card{display:block;padding:1rem;border:1px solid #2a3142;border-radius:12px;background:#151923;text-decoration:none;color:inherit;transition:border-color .15s ease}.film-card:hover{border-color:#4f7cff}.film-card-head{display:flex;justify-content:space-between;gap:.75rem;align-items:flex-start}.film-card-meta{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:.5rem;font-size:.85rem;color:#8b92a5}.film-card-error{margin:.5rem 0 0;font-size:.85rem;color:#f87171}.empty-state{padding:2rem 1rem;text-align:center;color:#8b92a5;border:1px dashed #2a3142;border-radius:12px}.back-link{display:inline-block;margin-bottom:1rem;text-decoration:none;font-size:.9rem}.film-detail-head{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;margin-bottom:1rem}.meta-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.75rem;margin:0 0 1.5rem;padding:1rem;background:#151923;border:1px solid #2a3142;border-radius:12px}.meta-grid dt{font-size:.75rem;color:#8b92a5;margin-bottom:.15rem}.meta-grid dd{margin:0;font-size:.95rem}.clips-section{margin-top:1.5rem}.clip-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem}.clip-card{border:1px solid #2a3142;border-radius:12px;overflow:hidden;background:#151923}.clip-video-wrap{aspect-ratio:9 / 16;background:#0a0d14;display:flex;align-items:center;justify-content:center}.clip-video{width:100%;height:100%;object-fit:contain;background:#000}.clip-placeholder{color:#8b92a5;font-size:.85rem;padding:1rem;text-align:center}.clip-placeholder.error{color:#f87171}.clip-card-body{padding:.75rem;display:flex;flex-direction:column;gap:.25rem}.clip-time{font-size:.85rem;color:#8b92a5}.clip-download{font-size:.85rem;margin-top:.25rem}code{font-size:.8rem;word-break:break-all}.setup-wizard{max-width:640px;margin:0 auto}.setup-hero{margin-bottom:1.5rem}.setup-steps{display:flex;gap:.5rem;list-style:none;padding:0;margin:0 0 1.5rem}.setup-steps li{flex:1;text-align:center;padding:.45rem .35rem;border-radius:8px;font-size:.8rem;background:#1a1f2e;color:#8b92a5;border:1px solid #2a3142}.setup-steps li.active{background:#1a2744;color:#fff;border-color:#4f7cff}.setup-steps li.done{color:#6ee7a0;border-color:#1a3d2e}.setup-panel{display:flex;flex-direction:column;gap:1rem;padding:1.25rem;border:1px solid #2a3142;border-radius:12px;background:#151923}.setup-panel h2{margin:0;font-size:1.1rem}.hint{margin:0;font-size:.85rem;color:#8b92a5}.form-grid{display:grid;gap:.75rem}.file-upload-large input[type=file]{padding:1rem;border-style:dashed}.actions-row{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}.link-button{display:inline-flex;align-items:center;padding:.75rem 1rem;border-radius:8px;text-decoration:none;color:#8fb4ff;border:1px solid #2a3142}.btn-link{border:none;background:transparent;color:#a8b0c0;font-size:.9rem;cursor:pointer;padding:.45rem .75rem;border-radius:8px}.btn-link:hover{background:#1a1f2e;color:#fff}.login-page{min-height:70vh;display:flex;align-items:center;justify-content:center}.login-card{width:100%;max-width:400px;padding:1.5rem;border:1px solid #2a3142;border-radius:12px;background:#151923;display:flex;flex-direction:column;gap:1rem}.login-card h1{margin:0}.login-hint{margin:0;font-size:.8rem}.processing-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem}.btn-danger{padding:.5rem .85rem;border:none;border-radius:8px;background:#7f1d1d;color:#fecaca;font-size:.85rem;font-weight:600;cursor:pointer;white-space:nowrap}.btn-danger:disabled{opacity:.6;cursor:not-allowed}.btn-secondary{padding:.65rem 1rem;border:1px solid #2a3142;border-radius:8px;background:#1a1f2e;color:#e8e8e8;font-size:.9rem;font-weight:600;cursor:pointer}.btn-secondary:disabled{opacity:.6;cursor:not-allowed}
