:root{
  --sidebar:268px;
  --topbar:68px;
  --wf-bg:#071019;
  --wf-bg-2:#0a141e;
  --wf-panel:#101b27;
  --wf-panel-2:#132231;
  --wf-panel-3:#182a3b;
  --wf-border:#24394c;
  --wf-border-strong:#31536b;
  --wf-text:#eaf5fb;
  --wf-muted:#8fa5b5;
  --wf-accent:#4fc7ed;
  --wf-accent-strong:#65d8ff;
  --wf-accent-soft:rgba(79,199,237,.13);
  --wf-danger:#ff5a68;
  --wf-success:#45d69d;
  --wf-warning:#f2c15b;
  --wf-shadow:0 18px 55px rgba(0,0,0,.26);
}

*{box-sizing:border-box}
html,body{min-height:100%}
body{font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;background:var(--wf-bg);color:var(--wf-text)}
body.app-body{min-height:100vh;background:
  radial-gradient(circle at 80% 0%,rgba(46,123,160,.10),transparent 32rem),
  linear-gradient(180deg,#08111a 0%,#071019 100%)}
a{color:var(--wf-accent-strong)}
a:hover{color:#a8eaff}
.text-secondary{color:var(--wf-muted)!important}

.app-topbar{height:var(--topbar);background:rgba(6,13,20,.94);border-bottom:1px solid var(--wf-border);backdrop-filter:blur(18px);z-index:1035}
.app-brand{display:flex;align-items:center;gap:.75rem;color:var(--wf-text);text-decoration:none;letter-spacing:.01em}
.app-brand:hover{color:#fff}
.app-brand strong{display:block;font-size:.98rem;line-height:1.05;letter-spacing:.05em}
.app-brand small{display:block;color:var(--wf-muted);font-size:.7rem;margin-top:.15rem}
.brand-mark{display:grid;place-items:center;width:38px;height:38px;border:1px solid rgba(79,199,237,.55);border-radius:11px;background:linear-gradient(145deg,rgba(79,199,237,.2),rgba(79,199,237,.04));color:var(--wf-accent-strong);font-size:.73rem;font-weight:900;letter-spacing:.05em;box-shadow:inset 0 0 20px rgba(79,199,237,.05)}
.topbar-spacer{flex:1}
.user-chip{display:flex;align-items:center;gap:.5rem;border:1px solid var(--wf-border);background:rgba(16,27,39,.72);padding:.42rem .65rem;border-radius:999px;font-size:.8rem;color:#d9e7ef}
.user-chip small{color:var(--wf-muted);text-transform:capitalize;border-left:1px solid var(--wf-border);padding-left:.5rem}
.user-dot{width:8px;height:8px;border-radius:50%;background:var(--wf-success);box-shadow:0 0 0 4px rgba(69,214,157,.1)}
.mobile-menu{width:40px;height:40px;padding:0;border-color:var(--wf-border-strong)}

.app-frame{min-height:calc(100vh - var(--topbar))}
.sidebar{width:var(--sidebar);min-height:calc(100vh - var(--topbar))}
.app-sidebar{background:linear-gradient(180deg,#08121c 0%,#070e16 100%);border-right:1px solid var(--wf-border)!important;color:var(--wf-text)}
.offcanvas-header{border-bottom:1px solid var(--wf-border)}
.sidebar-label{font-size:.66rem;font-weight:800;text-transform:uppercase;letter-spacing:.14em;color:#60788b;margin:.55rem .75rem .45rem}
.app-nav-link{display:flex;align-items:center;gap:.75rem;color:#b8c8d4!important;border:1px solid transparent;border-radius:.75rem;padding:.7rem .78rem;font-size:.9rem;font-weight:600;transition:background .15s,border-color .15s,color .15s,transform .15s}
.app-nav-link:hover{background:rgba(79,199,237,.07);border-color:rgba(79,199,237,.12);color:#fff!important;transform:translateX(2px)}
.app-nav-link.active{background:linear-gradient(90deg,rgba(79,199,237,.17),rgba(79,199,237,.06));border-color:rgba(79,199,237,.22);color:#fff!important;box-shadow:inset 3px 0 0 var(--wf-accent)}
.nav-mark{width:7px;height:7px;border-radius:50%;background:#4a6173;flex:none;transition:.15s}
.app-nav-link.active .nav-mark{background:var(--wf-accent-strong);box-shadow:0 0 0 4px rgba(79,199,237,.09),0 0 12px rgba(79,199,237,.35)}
.sidebar-footer{border-top:1px solid rgba(36,57,76,.7);margin-top:1rem}
.sidebar-version{font-size:.66rem;color:#506779;text-align:center;margin-top:.85rem;letter-spacing:.04em}

.main-content{min-width:0;padding:2rem 2.25rem 3rem;max-width:calc(100vw - var(--sidebar));width:100%}
.page-heading{max-width:1200px}
.eyebrow{font-size:.67rem;font-weight:900;letter-spacing:.15em;text-transform:uppercase;color:var(--wf-accent);margin-bottom:.35rem}
.page-title{font-size:clamp(1.75rem,2.5vw,2.25rem);font-weight:780;letter-spacing:-.035em;color:#f6fbff}
.page-subtitle,.section-copy{color:var(--wf-muted);max-width:760px}
.section-title{font-size:1.05rem;font-weight:750;color:#edf7fc}

.card,.panel-card,.list-group-item{background:linear-gradient(180deg,rgba(18,32,45,.96),rgba(14,25,36,.96))!important;border:1px solid var(--wf-border)!important;color:var(--wf-text)!important;border-radius:16px;box-shadow:0 10px 34px rgba(0,0,0,.12)}
.card.bg-black{background:linear-gradient(180deg,rgba(18,32,45,.96),rgba(14,25,36,.96))!important}
.panel-card{padding:1.25rem}
.panel-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding-bottom:1rem;margin-bottom:1rem;border-bottom:1px solid rgba(49,83,107,.45)}

.form-label{font-size:.78rem;font-weight:700;color:#bdced9;margin-bottom:.45rem}
.form-control,.form-select{background:#0a1520!important;border:1px solid #2a4154!important;color:#edf7fc!important;border-radius:10px;min-height:44px;box-shadow:none!important}
.form-control::placeholder{color:#60788b}
.form-control:focus,.form-select:focus{border-color:var(--wf-accent)!important;box-shadow:0 0 0 3px rgba(79,199,237,.10)!important}
.form-select{--bs-form-select-bg-img:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%238fa5b5' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e")}
.form-check-input{background-color:#0a1520;border-color:#3b566b}
.form-check-input:checked{background-color:var(--wf-accent);border-color:var(--wf-accent)}

.btn{border-radius:9px;font-weight:700;letter-spacing:.01em}
.btn-info{--bs-btn-color:#041018;--bs-btn-bg:var(--wf-accent);--bs-btn-border-color:var(--wf-accent);--bs-btn-hover-color:#041018;--bs-btn-hover-bg:#78dcfa;--bs-btn-hover-border-color:#78dcfa;box-shadow:0 7px 20px rgba(79,199,237,.13)}
.btn-outline-info{--bs-btn-color:var(--wf-accent-strong);--bs-btn-border-color:#326d87;--bs-btn-hover-color:#06121b;--bs-btn-hover-bg:var(--wf-accent);--bs-btn-hover-border-color:var(--wf-accent)}
.btn-outline-light{--bs-btn-color:#d6e3eb;--bs-btn-border-color:#425b6e;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#223646;--bs-btn-hover-border-color:#506f85}
.btn-outline-secondary{--bs-btn-color:#aebec9;--bs-btn-border-color:#3c5263;--bs-btn-hover-bg:#243746;--bs-btn-hover-border-color:#51697a}
.btn-outline-danger{--bs-btn-color:#ff7984;--bs-btn-border-color:#743541;--bs-btn-hover-bg:#9e3543;--bs-btn-hover-border-color:#9e3543}

.table-responsive{border:1px solid var(--wf-border);border-radius:13px;overflow:hidden}
.table,.table-dark,.app-table{--bs-table-bg:transparent;--bs-table-color:#dce9f0;--bs-table-border-color:rgba(49,83,107,.42);--bs-table-striped-bg:rgba(255,255,255,.015);--bs-table-hover-bg:rgba(79,199,237,.035);margin-bottom:0}
.table thead th{background:rgba(8,18,28,.8)!important;color:#8ea6b7!important;font-size:.68rem;text-transform:uppercase;letter-spacing:.09em;font-weight:800;padding:.8rem .9rem;border-bottom-color:var(--wf-border)!important;white-space:nowrap}
.table td{padding:.85rem .9rem;border-color:rgba(49,83,107,.28)!important;vertical-align:middle}
.table tbody tr:last-child td{border-bottom:0}
.table-empty{border:1px dashed var(--wf-border-strong);border-radius:12px;padding:1.4rem;color:var(--wf-muted);text-align:center;background:rgba(5,13,20,.23)}

.status-pill,.meta-chip{display:inline-flex;align-items:center;border:1px solid #33536a;background:#102536;color:#a9ddef;border-radius:999px;padding:.25rem .55rem;font-size:.69rem;font-weight:800;letter-spacing:.02em;white-space:nowrap}
.status-complete{border-color:rgba(69,214,157,.35);background:rgba(69,214,157,.09);color:#8ce8c4}
.status-failed{border-color:rgba(255,90,104,.35);background:rgba(255,90,104,.09);color:#ff9ca5}
.status-processing,.status-scanning{border-color:rgba(242,193,91,.35);background:rgba(242,193,91,.09);color:#f7d78e}

.source-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem}
.source-option{display:block;cursor:pointer;min-width:0}
.source-option-input{position:absolute;opacity:0;pointer-events:none}
.source-option-card{display:block;height:100%;min-height:126px;padding:1rem;border:1px solid var(--wf-border);border-radius:13px;background:#0a1520;transition:border-color .15s,background .15s,box-shadow .15s,transform .15s}
.source-option:hover .source-option-card{border-color:#3d627b;background:#0d1a26;transform:translateY(-1px)}
.source-option-input:checked + .source-option-card{border-color:var(--wf-accent);background:linear-gradient(145deg,rgba(79,199,237,.10),rgba(10,21,32,.98));box-shadow:0 0 0 3px rgba(79,199,237,.07)}
.source-option-name{display:block;color:#f0f8fc;font-size:.95rem;margin-bottom:.35rem}
.source-option-url{display:block;color:#7893a6;font-size:.72rem;line-height:1.35;overflow-wrap:anywhere}
.source-check{display:grid;place-items:center;width:25px;height:25px;border-radius:50%;border:1px solid #3a5263;color:#536b7c;font-size:.75rem;flex:none}
.source-option-input:checked + .source-option-card .source-check{background:var(--wf-accent);border-color:var(--wf-accent);color:#041018;font-weight:900}
.source-meta{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.85rem}
.scan-footer{border-top:1px solid rgba(49,83,107,.35);padding-top:1rem}

.empty-state{display:flex;align-items:center;gap:1rem;padding:1.6rem}
.empty-state h2{font-size:1.05rem;margin:0 0 .3rem;color:#f0f8fc}
.empty-state p{color:var(--wf-muted);margin:0 0 .9rem;max-width:650px}
.empty-state-icon{display:grid;place-items:center;width:52px;height:52px;border-radius:14px;border:1px solid rgba(79,199,237,.27);background:var(--wf-accent-soft);color:var(--wf-accent-strong);font-size:1.35rem;flex:none}

.app-alert{border-radius:12px;border-width:1px;background:#101c27;color:#dceaf2}
.alert-success{border-color:rgba(69,214,157,.35)!important;background:rgba(69,214,157,.08)!important;color:#a1eccf!important}
.alert-danger{border-color:rgba(255,90,104,.35)!important;background:rgba(255,90,104,.08)!important;color:#ffadb4!important}
.alert-warning{border-color:rgba(242,193,91,.35)!important;background:rgba(242,193,91,.08)!important;color:#f5da9e!important}
.alert-info{border-color:rgba(79,199,237,.35)!important;background:rgba(79,199,237,.08)!important;color:#afe8fa!important}

.poster-thumb{width:44px;height:66px;object-fit:cover;border-radius:.45rem;background:#081019;border:1px solid var(--wf-border)}
.tmdb-poster{width:92px;height:138px;object-fit:cover;border-radius:.55rem;flex:none;background:#081019}
.review-poster{width:54px;height:81px;object-fit:cover;border-radius:.4rem;flex:none;background:#081019}
.clamp-4{display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.min-w-0{min-width:0}.copy-btn{white-space:nowrap}

.playlist-sortable,.playlist-library{display:flex;flex-direction:column;gap:.5rem}.playlist-library{max-height:520px;overflow:auto}.playlist-row,.playlist-library-row{display:flex;align-items:center;gap:.65rem;padding:.65rem;border:1px solid var(--wf-border);border-radius:.7rem;background:#0a1520}.playlist-row.dragging{opacity:.45}.drag-handle{cursor:grab;color:#7e96a8}.playlist-thumb{width:36px;height:54px;object-fit:cover;border-radius:.3rem}

.app-login{min-height:100vh;background:radial-gradient(circle at 50% 15%,rgba(79,199,237,.12),transparent 30rem),#071019;color:var(--wf-text)}
.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center}
.app-login .row{width:100%}

@media(min-width:992px){.sidebar{position:sticky;top:var(--topbar);height:calc(100vh - var(--topbar));overflow:auto}.main-content{max-width:calc(100vw - var(--sidebar))}}
@media(max-width:991.98px){.app-sidebar{width:min(86vw,300px)!important}.main-content{max-width:none;padding:1.35rem}.user-chip small{display:none}.source-grid{grid-template-columns:1fr}}
@media(max-width:575.98px){.app-brand strong{font-size:.86rem}.app-brand small{display:none}.brand-mark{width:34px;height:34px}.user-chip{padding:.38rem .5rem}.page-heading .btn{flex:1}.panel-card{padding:1rem}.empty-state{align-items:flex-start}.source-option-card{min-height:0}}
.upload-thumb{width:62px;height:82px;object-fit:cover;border-radius:8px;border:1px solid var(--wf-border);background:#081019;display:block}.upload-file-icon{width:62px;height:62px;border-radius:10px;border:1px solid var(--wf-border);background:#0a1520;display:grid;place-items:center;color:var(--wf-accent);font-size:1.1rem}.uploads-table td:first-child{width:82px}.uploads-table td:nth-child(2){min-width:240px}@media(max-width:767.98px){.upload-thumb{width:50px;height:68px}.upload-file-icon{width:50px;height:50px}}
