/* Shared visual language with the discovery homepage. Loaded after legacy styles. */
:root {
    --bg-color: #131619;
    --card-bg: #1b1f23;
    --text-color: #f4f1ed;
    --primary-color: #f5ac86;
    --secondary-color: #a1a8ad;
    --nav-bg: rgba(19, 22, 25, .94);
    --sf-line: rgba(255, 255, 255, .09);
    --sf-muted: #a1a8ad;
}
body { color-scheme: dark; }
.wrapper { min-height: 100vh; }
.site-content { min-height: calc(100vh - 180px); }
.sf-home { padding-top: 20px; }
.sf-page { max-width: 1440px; padding: 32px 32px 64px; margin: auto; }
.site-footer {
    max-width: 1376px; margin: 0 auto; padding: 24px 0;
    border-top: 1px solid var(--sf-line); display: flex; align-items: center;
    justify-content: space-between; gap: 16px; color: #88939b; font-size: 12px;
}
.site-footer a { font-size: 16px; font-weight: 750; color: #f4f1ed; }
.site-footer a span { color: var(--primary-color); }
.skip-link { position: fixed; top: -100px; left: 20px; z-index: 12000; padding: 12px; background: #f5ac86; color: #241e1b; border-radius: 8px; }
.skip-link:focus { top: 12px; }
a { color: #f5ac86; }
a:hover { color: #ffc8aa; }
.netflix-navbar { border-bottom: 1px solid var(--sf-line); box-shadow: none; backdrop-filter: blur(16px); }
.netflix-logo { color: #f4f1ed; }
.netflix-logo span, .mobile-menu-logo span { color: var(--primary-color); }
.netflix-nav-links a { font-size: 12px; color: #aeb6bb; }
.netflix-nav-links a.active { color: #f5ac86; }
.netflix-nav-search { background: #ffffff06; border: 1px solid var(--sf-line); border-radius: 9px; }
.netflix-nav-user { color: #bcc5ca; font-size: 12px; }
.page-heading {
    display: flex; align-items: center; justify-content: space-between; gap: 24px;
    position: relative; overflow: hidden; padding: 36px 40px; margin-bottom: 28px;
    border: 1px solid var(--sf-line); border-radius: 22px;
    background: radial-gradient(ellipse at 95% 10%, #44342e 0, transparent 58%), linear-gradient(120deg, #202629, #171a1e);
}
.page-heading-copy { position: relative; z-index: 1; min-width: 0; }
.page-eyebrow { color: #f5ac86; font-size: 10px; font-weight: 750; letter-spacing: 2px; }
.page-heading h1 { font-size: clamp(32px, 3.4vw, 48px); line-height: 1.1; font-weight: 750; letter-spacing: -1.5px; margin: 14px 0; }
.page-heading p { color: #b4bec4; font-size: 14px; line-height: 1.7; max-width: 680px; margin: 0; }
.page-heading-art { flex: 0 0 118px; height: 118px; border: 1px solid #f5ac8626; border-radius: 50%; display: grid; place-items: center; color: #f5ac86; font-size: 32px; transform: rotate(-12deg); }
.section-toolbar { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 16px; margin: 0 0 22px; }
.section-toolbar > div { display: flex; align-items: center; flex-wrap: wrap; gap: 14px; }
.section-count { font-size: 18px; font-weight: 650; }
.panel-note { color: var(--sf-muted); font-size: 12px; line-height: 1.6; }
.sf-page .card, .sf-page .netflix-card { border: 1px solid var(--sf-line) !important; border-radius: 16px !important; background: #1b1f23 !important; box-shadow: none; color: var(--text-color); overflow: hidden; }
.sf-page .card-header { padding: 20px 24px; background: transparent !important; border-bottom: 1px solid var(--sf-line) !important; font-size: 14px; }
.sf-page .card-header h2, .sf-page .card-header h3, .sf-page .card-header h4, .sf-page .card-header h5 { font-size: 18px; font-weight: 650; margin: 0; letter-spacing: -.3px; }
.sf-page .card-body { padding: 24px; }
.sf-page .card-body.p-0 { padding: 0; }
.sf-page .text-muted { color: #a1adb5 !important; }
.sf-page label, .sf-login label { font-weight: 550; font-size: 13px; color: #b9c4ca; margin-bottom: 9px; }
.sf-page .form-group { margin-bottom: 24px; }
.sf-page .form-control, .sf-page .netflix-select, .sf-login .form-control {
    background: #12171b !important; border: 1px solid #ffffff17 !important;
    color: #f4f1ed !important; border-radius: 9px !important; min-height: 44px;
    padding: 10px 12px !important; font-size: 14px; height: auto; box-shadow: none;
}
.sf-page select.form-control, .sf-page .netflix-select { appearance: auto; }
.sf-page input[type=file].form-control { padding: 18px !important; border: 1px dashed #f5ac8660 !important; min-height: 80px; }
.sf-page input[type=file]::file-selector-button { border: 0; border-radius: 7px; background: #f5ac86; color: #241e1b; padding: 8px 12px; margin-right: 12px; cursor: pointer; }
.sf-page .form-control:focus, .sf-page .netflix-select:focus, .sf-login .form-control:focus { border-color: #f5ac86 !important; box-shadow: 0 0 0 3px #f5ac8615; }
.sf-page ::placeholder, .sf-login ::placeholder { color: #7f8c95; opacity: 1; }
.sf-page .form-text { font-size: 12px; margin-top: 9px; }
.sf-form-card { max-width: 820px; margin: 0 auto; }
.form-actions { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 12px; border-top: 1px solid var(--sf-line); padding-top: 24px; margin-top: 8px; }
.sf-page .btn, .sf-page .netflix-btn, .sf-login .btn { padding: 11px 17px; border-radius: 9px; font-size: 13px; font-weight: 650; display: inline-flex; justify-content: center; align-items: center; gap: 8px; line-height: 1.4; }
.sf-page .btn-primary, .sf-page .btn-danger[type=submit], .sf-page .btn-success[type=submit], .sf-page .btn-warning[type=submit], .sf-page .netflix-btn-primary, .sf-login .btn-primary { background: #f5ac86 !important; color: #241e1b !important; border: 1px solid #f5ac86 !important; }
/* Destructive confirmations keep their red warning appearance. */
.sf-page .modal .btn-danger[type=submit] { background: #a13e47 !important; border-color: #c7656e !important; color: #fff !important; }
.sf-page .btn-primary:hover, .sf-page .netflix-btn-primary:hover, .sf-login .btn-primary:hover { background: #ffc8aa !important; }
.sf-page .btn-outline-light, .sf-page .btn-outline-secondary, .sf-page .btn-secondary, .sf-page .netflix-btn-secondary { color: #c6d0d6; background: #ffffff04; border: 1px solid #ffffff24; }
.sf-page .btn-sm, .sf-page .btn-group-sm > .btn { padding: 9px 11px; }
.sf-page .btn:disabled { opacity: .55; }
.sf-page .custom-control-input:checked ~ .custom-control-label::before { background: #f5ac86; border-color: #f5ac86; }
.sf-page .custom-control-input:focus ~ .custom-control-label::before { box-shadow: 0 0 0 3px #f5ac8625; }
.sf-page input[type=checkbox] { accent-color: #f5ac86; }
.sf-page .table { color: #dce2e5; background: transparent; margin-bottom: 0; font-size: 13px; }
.sf-page .table th { color: #91a0aa; font-size: 10px; text-transform: uppercase; letter-spacing: 1.2px; font-weight: 650; border: 0; border-bottom: 1px solid var(--sf-line); padding: 16px; }
.sf-page .table td { border-top: 1px solid #ffffff08; padding: 17px 16px; vertical-align: middle; }
.sf-page .table tbody tr:hover { background: #ffffff03; }
.sf-page .table td:first-child { overflow-wrap: anywhere; }
.sf-page .table small { font-size: 11px; }
.sf-page .badge { border-radius: 6px; padding: 6px 8px; font-size: 10px; font-weight: 600; line-height: 1.3; }
.sf-page .badge-success { color: #a6d5b7; background: #264235; }
.sf-page .badge-warning { color: #edcc8c; background: #463b29; }
.sf-page .badge-info { color: #a3cadf; background: #293c48; }
.sf-page .badge-secondary { color: #b9c4cb; background: #30383e; }
.sf-page .badge-danger { color: #f3afb5; background: #4b2b30; }
.sf-page .alert { border-radius: 12px; border: 1px solid #ffffff14; padding: 16px 20px; font-size: 13px; line-height: 1.7; }
.sf-page .alert-info { background: #243039; color: #bacee0; }
.sf-page .alert-success { background: #24392f; color: #b3dec3; }
.sf-page .alert-danger { background: #3e282b; color: #f3b7bc; }
.sf-page .alert-warning { background: #3d3428; color: #edce9d; }
.sf-page .alert a { color: #f5ac86; }
.sf-page .page-link { background: #151a1e; border-color: #ffffff15; color: #f5ac86; border-radius: 7px; margin: 0 3px; padding: 9px 13px; }
.sf-page .page-item.disabled .page-link { background: #1b1f23; border-color: #ffffff10; color: #89959e; }
.sf-page .request-card { background: #151a1e; border: 1px solid var(--sf-line); border-left: 3px solid #6d7a83; }
.sf-page .request-done { border-left-color: #88bba1; }
.sf-page .request-processing { border-left-color: #95bdd1; }
.sf-page .request-queued { border-left-color: #edcc8c; }
.sf-page .request-failed { border-left-color: #dc8892; }
.sf-page .breadcrumb { background: #12171b !important; border: 1px solid var(--sf-line); border-radius: 9px; font-size: 12px; padding: 13px 16px; flex-wrap: wrap; overflow-wrap: anywhere; }
.sf-page .breadcrumb a, .sf-page .file-link:hover { color: #f5ac86 !important; }
.sf-page .text-warning { color: #e1b895 !important; }
.sf-page .text-success { color: #a4cdb3 !important; }
.sf-page .text-info { color: #9abfd0 !important; }
.sf-page .display-4 { font-size: 42px; font-weight: 700; letter-spacing: -1px; }
/* Search: room for filters and clean rows for release names. */
.sf-page .netflix-search-hero { padding: 0; background: none; }
.sf-page .netflix-search-container { max-width: none; }
.sf-page .netflix-search-bar { background: #151a1e; border: 1px solid #ffffff1a; border-radius: 13px; padding: 12px 16px; box-shadow: none; }
.sf-page .netflix-input { font-size: 16px !important; }
.sf-page .netflix-input:focus-visible { outline: 0 !important; }
.sf-page .netflix-search-bar:focus-within { border-color: #f5ac86; box-shadow: 0 0 0 3px #f5ac8615; }
.sf-page .netflix-filter-panel { box-shadow: none; background: #1b1f23 !important; padding: 24px; margin: 18px 0 28px; }
.sf-page .filter-grid { grid-template-columns: 1fr 1fr 1fr; gap: 24px; }
.sf-page .subcat { margin-top: 16px; }
.sf-page .quality-switch { min-height: 44px; border-radius: 9px; font-size: 13px; }
.sf-page .source-selector { font-size: 12px; }
.sf-page .netflix-results { margin-top: 24px; }
.sf-page .netflix-results .netflix-cards { gap: 10px; margin: 16px 0 0; }
.sf-page .netflix-results .netflix-card-item { padding: 18px; border-radius: 11px; background: #151a1e; border: 1px solid #ffffff0b; gap: 16px; }
.sf-page .netflix-results .netflix-card-item:hover { border-color: #f5ac8645; background: #20262b; transform: none; }
.sf-page .netflix-results .netflix-card-item .card-body { padding: 0; display: flex; gap: 10px; }
.sf-page .netflix-results .netflix-card-item .card-title { font-size: 14px; line-height: 1.5; font-weight: 600; }
.sf-page .netflix-results .netflix-card-item .card-meta { justify-content: flex-start; flex-wrap: wrap; }
.sf-page .netflix-card-item .card-meta .meta-chip { border-color: #ffffff10; background: #ffffff04; color: #9fadb6; font-size: 10px; padding: 5px 8px; }
.sf-page .netflix-add-btn { background: #f5ac86; color: #241e1b; border: 0; border-radius: 8px; min-width: 38px; min-height: 38px; }
.sf-page .netflix-add-btn--added { background: #304239; color: #a8d6b9; }
/* Bootstrap admin dialogs must not inherit the film preview's poster layout. */
.sf-page .modal .modal-content { width: 100%; margin: 0; display: flex; flex-direction: column; background: #1b2024 !important; border: 1px solid #ffffff20; border-radius: 16px; max-height: calc(100dvh - 56px); overflow-y: auto; }
.sf-page .modal .modal-body { display: block; padding: 24px; overflow: visible; }
.sf-page .modal .modal-header, .sf-page .modal .modal-footer { border-color: var(--sf-line) !important; padding: 20px 24px; }
.sf-page .modal .modal-title { font-size: 17px; }
.sf-page .netflix-modal .modal-content { border-radius: 18px; border-color: #ffffff20; background: #1b2024; }
.sf-page .netflix-modal .modal-info h2 { font-size: 25px; letter-spacing: -.5px; }
.sf-page .netflix-modal .modal-info { padding: 30px; min-width: 0; }
.sf-page .netflix-modal .modal-poster { background: #12171b; }
/* Sign in is a separate, calm entry screen. */
.sf-login { min-height: 100dvh; padding: 32px 20px; display: flex; align-items: center; justify-content: center; background: radial-gradient(ellipse at 75% 0%, #44342e, transparent 55%), #131619; }
.sf-login .login-box { width: 440px; max-width: 100%; }
.sf-login .login-card { background: #1b1f23; border: 1px solid #ffffff14; border-radius: 22px; padding: 36px; box-shadow: 0 24px 80px #0003; }
.sf-login h1 { font-size: 30px; font-weight: 750; letter-spacing: -.8px; margin: 0 0 28px; }
.sf-login .form-group { margin-bottom: 20px; }
.sf-login .btn-block { display: flex; width: 100%; margin-top: 28px; }
.sf-login .alert { background: #3e282b; color: #f3b7bc; font-size: 13px; border: 0; border-radius: 9px; }
.sf-login .cf-turnstile { margin-top: 20px; }
.sf-page :focus-visible, .sf-login :focus-visible { outline: 2px solid #f5ac86; outline-offset: 4px; }
@media (max-width: 1200px) {
    .netflix-nav-search { display: none; }
    .netflix-navbar-inner { gap: 20px; }
    .netflix-nav-links { gap: 16px; }
}
@media (max-width: 900px) {
    .sf-page .filter-grid { grid-template-columns: 1fr 1fr; }
    .page-heading-art { flex-basis: 90px; height: 90px; font-size: 25px; }
}
@media (max-width: 650px) {
    .sf-page { padding: 18px 16px 40px; }
    .sf-home { padding-top: 16px; }
    .site-footer { margin: 0 16px; padding: 22px 0; }
    .page-heading { padding: 28px 24px; border-radius: 16px; margin-bottom: 24px; }
    .page-heading h1 { font-size: 34px; letter-spacing: -1px; }
    .page-heading p { font-size: 12px; }
    .page-heading-art { display: none; }
    .sf-page .card-body, .sf-page .card-header { padding: 18px; }
    .sf-page .card-body.p-0 { padding: 0; }
    .sf-page .filter-grid { grid-template-columns: 1fr; gap: 20px; }
    .sf-page .netflix-search-bar { flex-wrap: wrap; gap: 12px; padding: 16px; }
    .sf-page .netflix-search-bar .netflix-input { width: calc(100% - 36px); flex-basis: calc(100% - 36px); font-size: 14px !important; }
    .sf-page .netflix-search-bar > button { width: 100%; }
    .sf-page .netflix-results .netflix-card-item { padding: 14px; gap: 12px; }
    .sf-page .netflix-results .netflix-card-item .card-title { font-size: 12px; }
    .sf-page .table td, .sf-page .table th { padding: 14px 10px; }
    .sf-page .file-modified { display: none; }
    .sf-page .file-browser .table { table-layout: fixed; }
    .sf-page .file-browser .table th:last-child:not(.file-modified) { width: 80px !important; }
    .sf-page .file-link { overflow-wrap: anywhere; }
    .sf-page .mobile-records thead { display: none; }
    .sf-page .mobile-records, .sf-page .mobile-records tbody, .sf-page .mobile-records tr, .sf-page .mobile-records td { display: block; width: 100%; }
    .sf-page .mobile-records tr { padding: 18px; border-bottom: 1px solid var(--sf-line); }
    .sf-page .mobile-records tr:last-child { border-bottom: 0; }
    .sf-page .mobile-records td { padding: 7px 0; border: 0; display: flex; justify-content: space-between; gap: 16px; font-size: 12px; }
    .sf-page .mobile-records td[data-label]::before { content: attr(data-label); color: #91a0aa; flex-shrink: 0; }
    .sf-page .mobile-records td.record-title { font-size: 17px; font-weight: 650; margin-bottom: 8px; }
    .sf-page .mobile-records td.record-title::before { display: none; }
    .sf-page .mobile-records td.record-actions { justify-content: flex-end; margin-top: 8px; }
    .sf-page .mobile-records td[data-label="Dernière détection"] { flex-wrap: wrap; }
    .sf-page .netflix-modal .modal-content { margin: 5vh auto; max-height: 90dvh; overflow: auto; }
    .sf-page .netflix-modal .modal-poster { display: none; }
    .sf-page .netflix-modal .modal-info { padding: 26px; }
    .sf-login .login-card { padding: 28px 24px; }
}
@media (prefers-reduced-motion: reduce) {
    .sf-page *, .sf-login * { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}

.empty-state { padding: 40px 24px; text-align: center; color: #95a3ad; }
.empty-state > i { font-size: 24px; color: #f5ac86; margin-bottom: 18px; }
.empty-state h2 { font-size: 18px; font-weight: 600; color: #dce2e5; margin: 0 0 10px; }
.empty-state p { font-size: 13px; margin: 0; line-height: 1.7; }
@media (max-width: 1100px) {
    .netflix-nav-desktop { display: none !important; }
    .netflix-hamburger { display: inline-flex !important; }
}

.site-footer .bug-report-link{font-size:12px;font-weight:500;color:var(--sf-muted);padding:10px 0;white-space:nowrap}.bug-report-link:focus-visible{outline:2px solid var(--primary-color);outline-offset:4px}.bug-report-card{max-width:720px;margin:auto}.bug-report-path{overflow-wrap:anywhere;color:#c2c9cf}.bug-report-card textarea{resize:vertical;min-height:150px}@media(max-width:650px){.site-footer{flex-wrap:wrap;padding:20px 16px}.site-footer .bug-report-link{margin-left:auto}}
