        * {
            box-sizing: border-box;
        }

        body {
            margin: 0;
            padding: 0;
            background: #111318;
            color: #f1f3f5;
            font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
        }

        .container {
            max-width: 1360px;
            margin: 0 auto;
            padding: 28px;
            zoom: 0.8;
        }

        .header {
            position: relative;
            display: flex;
            justify-content: space-between;
            align-items: center;
            margin-bottom: 16px;
        }

        .title-logo {
            display: block;
            width: 215px;
            height: auto;
            max-height: 72px;
            object-fit: contain;
        }

        .title {
            font-size: 30px;
            font-weight: 600;
            font-family: "Monotype Corsiva", "Edwardian Script ITC", "French Script MT", "Lucida Calligraphy", cursive;
            letter-spacing: .3px;
            color: var(--theme-main-dark);
            white-space: nowrap;
        }

        .subtitle {
            margin-top: 6px;
            color: #8b919c;
            font-size: 14px;
        }

        .header-actions {
            display: flex;
            align-items: center;
            gap: 12px;
        }

        .updated {
            color: #8b919c;
            font-size: 13px;
        }

        button {
            border: 1px solid #343a46;
            background: #242934;
            color: #f1f3f5;
            border-radius: 6px;
            padding: 7px 11px;
            font-size: 12px;
            font-weight: 600;
            cursor: pointer;
        }

        button:hover {
            background: #303642;
        }

        button:disabled {
            opacity: .5;
            cursor: default;
        }

        .refresh-button {
            white-space: nowrap;
        }

        .retry-button {
            background: #2b3a2d;
            border-color: #405746;
            color: #9fe3ad;
            white-space: nowrap;
        }

        /* Back to top */
        .back-to-top {
            position: fixed;
            right: 28px;
            bottom: 28px;
            width: 48px;
            height: 48px;
            border: 1px solid #ff9fc2;
            border-radius: 50%;
            background: linear-gradient(135deg, #ff4f8b, #ff79aa);
            color: #ffffff;
            font-size: 22px;
            font-weight: 700;
            line-height: 1;
            display: flex;
            align-items: center;
            justify-content: center;
            cursor: pointer;
            box-shadow: 0 6px 18px rgba(255, 79, 139, 0.28);
            opacity: 0;
            visibility: hidden;
            transform: translateY(10px);
            transition:
                opacity 0.2s ease,
                visibility 0.2s ease,
                transform 0.2s ease;
            z-index: 1000;
        }

        .back-to-top:hover {
            transform: translateY(0) scale(1.05);
            box-shadow: 0 8px 22px rgba(255, 79, 139, 0.38);
        }

        .back-to-top.show {
            opacity: 1;
            visibility: visible;
            transform: translateY(0);
        }

        @media (max-width: 700px) {
            .back-to-top {
                right: 16px;
                bottom: 16px;
                width: 44px;
                height: 44px;
                font-size: 20px;
            }
        }

        .exception-retry-button {
            flex-shrink: 0;
        }

        .new-header-actions {
            display: flex;
            align-items: center;
            gap: 8px;
        }

        .new-header-actions .retry-button {
            flex-shrink: 0;
        }


        .top-menu {
            display: flex;
            align-items: stretch;
            gap: 10px;
            margin-bottom: 24px;
            min-height: 48px;
        }

        .top-menu-button {
            min-width: 150px;
            padding: 11px 16px;
            border: 1px solid #292e38;
            border-radius: 9px;
            background: #1b1f27;
            color: #aeb4bf;
            font-size: 13px;
            font-weight: 600;
            text-align: left;
        }

        .top-menu-button:hover {
            background: #242934;
            color: #f1f3f5;
        }

        .top-menu-button.active {
            background: #252d3a;
            border-color: #405a76;
            color: #8fc7ff;
        }

        .page {
            display: none;
        }

        .page.active {
            display: block;
        }

        .page-header {
            display: flex;
            justify-content: space-between;
            align-items: center;
            margin-bottom: 20px;
        }

        .page-title {
            font-size: 20px;
            font-weight: 700;
        }

        .page-description {
            margin-top: 5px;
            color: #8b919c;
            font-size: 13px;
        }

        .actress-form {
            display: grid;
            grid-template-columns: repeat(4, minmax(0, 1fr)) auto;
            gap: 10px;
            align-items: end;
            margin-bottom: 20px;
            padding: 18px;
            background: #1b1f27;
            border: 1px solid #292e38;
            border-radius: 12px;
        }

        .form-field {
            min-width: 0;
        }

        .form-field label {
            display: block;
            margin-bottom: 6px;
            color: #9299a5;
            font-size: 11px;
        }

        .form-field input {
            width: 100%;
            height: 36px;
            padding: 7px 10px;
            border: 1px solid #343a46;
            border-radius: 6px;
            outline: none;
            background: #111318;
            color: #f1f3f5;
            font-size: 12px;
        }

        .form-field input:focus {
            border-color: #4d6f94;
        }

        .actress-add-button {
            height: 36px;
            background: #20372b;
            border-color: #405746;
            color: #9fe3ad;
            white-space: nowrap;
        }

        .header {
            max-width: 1360px;
            margin-left: auto;
            margin-right: auto;
        }

        .actress-grid {
            display: grid;
            grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
            gap: 14px;
            max-width: 1360px;
            margin: 0 auto;
        }

        .actress-card {
            position: relative;
            overflow: hidden;
            background: #1b1f27;
            border: 1px solid #292e38;
            border-radius: 12px;
            padding: 10px;
            text-align: center;
            cursor: grab;
            transition: transform .12s ease, border-color .12s ease, opacity .12s ease;
        }

        .actress-card:active {
            cursor: grabbing;
        }

        .actress-card.dragging {
            opacity: .45;
            transform: scale(.98);
            border-color: #4d6f94;
        }

        .actress-card.drag-over {
            border-color: #69b7f3;
            box-shadow: 0 0 0 1px #69b7f3 inset;
        }


        .actress-group-header { grid-column: 1 / -1; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:12px 14px; margin-top:8px; background:#202630; border:1px solid #343a46; border-radius:10px; transition: border-color .12s ease, box-shadow .12s ease, background .12s ease; }
        .actress-group-header.drag-over { border-color:#69b7f3; box-shadow:0 0 0 1px #69b7f3 inset; background:#26313e; }
        .actress-group-title { display:flex; align-items:center; gap:8px; font-size:14px; font-weight:700; }
        .actress-group-count { color:#777f8b; font-size:11px; font-weight:500; }
        .actress-group-actions { display:flex; gap:6px; flex-wrap:wrap; }
        .actress-group-actions button { padding:5px 8px; font-size:10px; }
        .actress-group-toggle { min-width:28px; }
        .actress-group-move-button { min-width:28px; padding:5px 7px !important; }
        .actress-group-move-button:disabled { opacity:.35; cursor:default; }
        .actress-group-card { transition:opacity .15s ease; }
        .actress-group-card.group-collapsed { display:none; }

        .actress-card-telegram {
            position: absolute;
            top: 8px;
            right: 8px;
            z-index: 5;
            display: flex;
            align-items: center;
            justify-content: center;
            width: 30px;
            height: 30px;
            border: none;
            border-radius: 0;
            background: transparent;
            cursor: pointer;
        }

        .actress-card-telegram:hover {
            border: none;
            background: transparent;
        }

        .actress-card-telegram input {
            width: 20px;
            height: 20px;
            margin: 0;
            padding: 0;
            accent-color: #4da3ff;
            cursor: pointer;
        }

        .actress-card-telegram.checked {
            border: none;
            background: transparent;
        }

        .actress-order-toolbar {
            display: flex;
            align-items: center;
            gap: 8px;
            flex-wrap: wrap;
        }

        .actress-order-help {
            color: #777f8b;
            font-size: 11px;
            margin-right: 4px;
        }

        .actress-order-button {
            padding: 6px 9px;
            font-size: 11px;
        }

        .actress-order-button.active {
            border-color: #405a76;
            color: #8fc7ff;
        }

        .actress-image {
            width: 100%;
            aspect-ratio: 1 / 1;
            border-radius: 8px;
            display: flex;
            align-items: center;
            justify-content: center;
            background: #111318;
            color: #777f8b;
            font-size: 11px;
            overflow: hidden;
        }

        .actress-image img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            display: block;
        }

        .actress-card-name {
            font-size: 13px;
            font-weight: 700;
            margin-top: 8px;
        }

        .actress-card-jp {
            color: #aeb4bf;
            font-size: 11px;
            margin-bottom: 8px;
        }

        .actress-card-sukebei-button {
            display: flex;
            align-items: center;
            justify-content: center;
            width: 100%;
            font-size: 11px;
            padding: 6px;
            border: 1px solid #405746;
            border-radius: 6px;
            background: #20372b;
            color: #9fe3ad;
            text-decoration: none;
            margin-bottom: 6px;
            cursor: pointer;
        }

        .actress-card-sukebei-button:hover {
            background: #2b4a38;
        }

        .actress-card-sukebei-button:disabled {
            opacity: .5;
            cursor: default;
        }

        .actress-card-avdbs-button {
            display: flex;
            align-items: center;
            justify-content: center;
            gap: 4px;
            width: 100%;
            font-size: 11px;
            padding: 6px;
            border: 1px solid #405a76;
            border-radius: 6px;
            background: #1a2430;
            color: #8fc7ff;
            text-decoration: none;
            margin-bottom: 6px;
            cursor: pointer;
        }

        .actress-card-avdbs-button.disabled {
            border-color: #343a46;
            color: #5f6570;
            pointer-events: none;
        }

        .actress-card-dmm-button {
            display: flex;
            align-items: center;
            justify-content: center;
            gap: 4px;
            width: 100%;
            font-size: 11px;
            padding: 6px;
            border: 1px solid #405a76;
            border-radius: 6px;
            background: #1a2430;
            color: #8fc7ff;
            text-decoration: none;
            margin-bottom: 6px;
            cursor: pointer;
        }

        .actress-card-dmm-button:hover {
            background: #24344a;
        }

        .actress-card-actions {
            display: flex;
            gap: 6px;
        }

        .actress-card-actions button {
            flex: 1;
            font-size: 11px;
            padding: 6px;
        }

        .actress-delete-button {
            background: #3b2427;
            border-color: #5a3439;
            color: #f2a0a6;
        }

        .actress-card-telegram-send-button {
            width: 100%;
            background: #24344a;
            border-color: #405a76;
            color: #8fc7ff;
            margin-bottom: 6px;
        }

        .actress-card-telegram-send-button:hover {
            background: #2d435d;
        }

        .actress-card-edit-button {
            background: #2c2d34;
            border-color: #4b4f5b;
            color: #d0d5df;
        }

        .actress-card-edit-button:hover {
            background: #383b45;
        }

        .actress-card-row {
            display: flex;
            gap: 6px;
            margin-bottom: 6px;
        }

        .actress-card-row > * {
            flex: 1 1 0;
            width: 0;
            min-width: 0;
            height: 30px;
            margin: 0 !important;
            padding: 0 6px !important;
            box-sizing: border-box;
            line-height: 28px;
            text-align: center;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
        }


        .schedule-overlay { position: fixed; inset: 0; z-index: 1100; display: none; align-items: center; justify-content: center; padding: 20px; background: rgba(0,0,0,.68); }
        .schedule-overlay.open { display: flex; }
        .schedule-modal { width: min(560px,100%); padding: 22px; background: #1b1f27; border: 1px solid #343a46; border-radius: 14px; box-shadow: 0 20px 60px rgba(0,0,0,.45); }
        .schedule-header { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 18px; }
        .schedule-title { font-size: 18px; font-weight: 700; }
        .schedule-description { margin-top: 5px; color: #8b919c; font-size: 11px; line-height: 1.5; }
        .schedule-close { width: 34px; height: 34px; padding: 0; font-size: 18px; }
        .schedule-fixed-row, .schedule-slot-row { display: grid; grid-template-columns: 120px 1fr; align-items: center; gap: 12px; min-height: 42px; padding: 7px 0; border-bottom: 1px solid #292e38; }
        .schedule-label { color: #c8cdd6; font-size: 12px; font-weight: 600; }
        .schedule-fixed-value, .schedule-slot-row select, .schedule-time-input { width: 100%; height: 36px; padding: 7px 10px; border: 1px solid #343a46; border-radius: 6px; outline: none; background: #111318; color: #f1f3f5; font-size: 12px; box-sizing: border-box; }
        .schedule-fixed-value { display: flex; align-items: center; }
        .schedule-time-input { color-scheme: dark; }
        .schedule-dmm-days { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
        .schedule-dmm-day-input { width: 100%; height: 36px; padding: 7px 8px; border: 1px solid #343a46; border-radius: 6px; outline: none; background: #111318; color: #f1f3f5; font-size: 12px; text-align: center; box-sizing: border-box; }
        .schedule-dmm-day-input::-webkit-outer-spin-button, .schedule-dmm-day-input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
        .schedule-manual-row { display:flex; align-items:center; justify-content:center; min-height:50px; padding:8px 0; border-bottom:1px solid #292e38; }
        .schedule-manual-row button { width:60%; min-width:180px; max-width:360px; background:#26364a; border-color:#3d5875; color:#a9d3ff; }
        .schedule-manual-row span { position:absolute; margin-top:52px; color:#8b919c; font-size:12px; }
        .schedule-section-title { margin: 18px 0 6px; color: #9299a5; font-size: 11px; font-weight: 700; }
        .schedule-days { display:grid; grid-template-columns:repeat(7,1fr); gap:6px; margin-bottom:6px; }
        .schedule-days label { display:flex; align-items:center; justify-content:center; gap:5px; height:36px; border:1px solid #343a46; border-radius:7px; background:#111318; color:#c8cdd6; font-size:12px; cursor:pointer; }
        .schedule-days label:has(input:checked) { border-color:#5d7f67; background:#20372b; color:#a9e3b4; }
        .schedule-days input { accent-color:#7fb98a; }
        .schedule-message { min-height: 18px; margin-top: 10px; color: #8b919c; font-size: 11px; }
        .schedule-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 18px; }
        .schedule-save { background: #20372b; border-color: #405746; color: #9fe3ad; }
        @media (max-width: 600px) { .schedule-slot-row, .schedule-fixed-row { grid-template-columns: 1fr; gap: 6px; } }

        /* 대시보드 설정 페이지: 다른 메뉴와 동일한 page 전환 방식의 설정 화면.
           테마 적용 시 쉽게 교체할 수 있도록 클래스를 분리해둔다. */
        .dashboard-settings-right-column { display: flex; flex-direction: column; gap: 20px; min-width: 0; }
        .dashboard-settings-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; align-items: start; margin-bottom: 20px; }
        .dashboard-settings-placeholder-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 38px; padding: 7px 0; border-bottom: 1px solid #ffd0df; }
        .dashboard-settings-placeholder-row:last-of-type { border-bottom: none; }
        .dashboard-settings-badge { padding: 3px 9px; border-radius: 999px; background: var(--theme-hover-bg); color: #a1798d; font-size: 10px; font-weight: 700; white-space: nowrap; }
        .dashboard-settings-placeholder-button { width: 100%; height: 34px; margin-top: 10px; border: 1px dashed var(--theme-border); border-radius: 6px; background: transparent; color: #a1798d; font-size: 12px; cursor: not-allowed; }
        .dashboard-theme-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 38px; padding: 9px 0; border-bottom: 1px solid var(--theme-border); flex-wrap: wrap; }
        .dashboard-theme-row:last-of-type { border-bottom: none; }
        .dashboard-theme-description { margin-top: 2px; font-size: 11px; color: var(--theme-muted-soft); }
        .dashboard-theme-select { min-width: 200px; height: 36px; padding: 0 10px; border: 1px solid var(--theme-border); border-radius: 8px; background: #fff; color: var(--theme-text); font-size: 13px; cursor: pointer; }
        .dashboard-theme-select:focus { outline: none; border-color: var(--theme-accent-strong); box-shadow: 0 0 0 3px var(--theme-hover-bg-2); }
        .dashboard-theme-preview { display: flex; align-items: center; gap: 6px; }
        .dashboard-theme-swatch { width: 22px; height: 22px; border-radius: 50%; border: 1px solid rgba(0,0,0,.08); box-shadow: 0 1px 3px rgba(0,0,0,.12); display: inline-block; }
        .dashboard-theme-actions { margin-top: 10px; }
        #dashboard-theme-apply-button { width: 100%; height: 36px; border: 1px solid var(--theme-active-a); border-radius: 8px; background: linear-gradient(135deg, var(--theme-active-a), var(--theme-active-b)); color: #fff; font-size: 13px; font-weight: 700; cursor: pointer; }
        #dashboard-theme-apply-button:hover { filter: brightness(1.03); }
        #dashboard-theme-apply-button.saved { background: linear-gradient(135deg, var(--theme-active-c), var(--theme-active-b)); }
        @media (max-width: 700px) { .dashboard-settings-grid { grid-template-columns: 1fr; } }

        .actress-edit-overlay {
            position: fixed;
            inset: 0;
            z-index: 1000;
            display: none;
            align-items: center;
            justify-content: center;
            padding: 20px;
            background: rgba(0, 0, 0, .68);
        }

        .actress-edit-overlay.open {
            display: flex;
        }

        .actress-edit-modal {
            width: min(560px, 100%);
            max-height: 90vh;
            overflow-y: auto;
            padding: 22px;
            background: #1b1f27;
            border: 1px solid #343a46;
            border-radius: 14px;
            box-shadow: 0 20px 60px rgba(0, 0, 0, .45);
        }

        .actress-edit-header {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 12px;
            margin-bottom: 18px;
        }

        .actress-edit-title {
            font-size: 18px;
            font-weight: 700;
        }

        .actress-edit-close {
            width: 34px;
            height: 34px;
            padding: 0;
            font-size: 18px;
        }

        .actress-edit-grid {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 12px;
        }

        .actress-edit-field {
            min-width: 0;
        }

        .actress-edit-field.full {
            grid-column: 1 / -1;
        }

        .actress-edit-field label {
            display: block;
            margin-bottom: 6px;
            color: #9299a5;
            font-size: 11px;
        }

        .actress-edit-field input {
            width: 100%;
            height: 38px;
            padding: 8px 10px;
            border: 1px solid #343a46;
            border-radius: 6px;
            outline: none;
            background: #111318;
            color: #f1f3f5;
            font-size: 12px;
        }

        .actress-edit-field input:focus {
            border-color: #4d6f94;
        }

        .actress-edit-telegram {
            display: flex;
            align-items: center;
            gap: 8px;
            min-height: 38px;
            color: #c8cdd6;
            font-size: 12px;
        }

        .actress-edit-telegram input {
            width: 18px;
            height: 18px;
            margin: 0;
            accent-color: #4da3ff;
        }

        .actress-edit-actions {
            display: flex;
            justify-content: flex-end;
            gap: 8px;
            margin-top: 20px;
        }

        .actress-edit-save {
            background: #20372b;
            border-color: #405746;
            color: #9fe3ad;
        }

        .actress-edit-message {
            min-height: 18px;
            margin-top: 10px;
            color: #8b919c;
            font-size: 11px;
        }

        .actress-edit-user-images {
            margin-top: 18px;
            padding-top: 16px;
            border-top: 1px solid #343a46;
        }

        .actress-edit-user-images-header {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 12px;
        }

        .actress-edit-user-images-title {
            font-size: 13px;
            font-weight: 700;
            color: #f1f3f5;
        }

        .actress-edit-user-images-description {
            margin-top: 4px;
            color: #9299a5;
            font-size: 11px;
        }

        .actress-edit-user-images-add-button {
            flex-shrink: 0;
        }

        .actress-edit-user-images-add-button:disabled {
            opacity: .45;
            cursor: not-allowed;
        }

        .actress-edit-user-images-grid {
            display: grid;
            grid-template-columns: repeat(auto-fill, minmax(84px, 1fr));
            gap: 10px;
            margin-top: 12px;
        }

        .actress-edit-user-images-empty {
            margin-top: 12px;
            color: #8b919c;
            font-size: 11px;
        }

        .actress-edit-user-image-item {
            position: relative;
            width: 100%;
            aspect-ratio: 1 / 1;
            border: 1px solid #343a46;
            border-radius: 8px;
            overflow: hidden;
            background: #111318;
            cursor: grab;
            touch-action: none;
            user-select: none;
        }

        .actress-edit-user-image-item.dragging-position {
            cursor: grabbing;
            border-color: #405a76;
        }

        .actress-edit-user-image-item img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            display: block;
            pointer-events: none;
        }

        .actress-edit-user-image-position-hint {
            position: absolute;
            left: 0;
            right: 0;
            bottom: 0;
            padding: 3px 4px;
            font-size: 9px;
            text-align: center;
            color: #f1f3f5;
            background: rgba(0, 0, 0, .45);
            pointer-events: none;
        }

        .actress-edit-user-image-remove {
            position: absolute;
            top: 4px;
            right: 4px;
            width: 22px;
            height: 22px;
            padding: 0;
            line-height: 1;
            font-size: 13px;
            border-radius: 50%;
            border: 1px solid #4a2a33;
            background: rgba(20, 12, 15, .82);
            color: #f1a3ac;
        }

        .actress-edit-user-image-representative-badge {
            position: absolute;
            top: 4px;
            left: 4px;
            padding: 2px 6px;
            font-size: 10px;
            border-radius: 10px;
            background: rgba(0, 0, 0, .55);
            color: #ffd166;
            pointer-events: none;
        }

        .actress-edit-user-image-representative-button {
            position: absolute;
            top: 4px;
            left: 4px;
            padding: 2px 6px;
            font-size: 10px;
            border-radius: 10px;
            border: 1px solid #343a46;
            background: rgba(20, 20, 24, .82);
            color: #f1f3f5;
            cursor: pointer;
        }

        @media (max-width: 600px) {
            .actress-edit-grid {
                grid-template-columns: 1fr;
            }

            .actress-edit-field.full {
                grid-column: auto;
            }
        }

        .actress-status {
            margin-bottom: 12px;
            color: #8b919c;
            font-size: 12px;
        }

        @media (max-width: 1100px) {
            .actress-form {
                grid-template-columns: repeat(2, 1fr);
            }

            .actress-add-button {
                width: 100%;
            }
        }

        @media (max-width: 600px) {
            .top-menu {
                overflow-x: auto;
            }

            .top-menu-button {
                min-width: 130px;
            }

            .actress-form {
                grid-template-columns: 1fr;
            }
        }

        .summary {
            display: grid;
            grid-template-columns: repeat(6, 1fr);
            gap: 14px;
            margin-bottom: 24px;
        }

        .card {
            background: #1b1f27;
            border: 1px solid #292e38;
            border-radius: 12px;
            padding: 20px;
        }

        .card-label {
            color: #9299a5;
            font-size: 13px;
            margin-bottom: 10px;
        }

        .card-value {
            font-size: 30px;
            font-weight: 700;
        }

        .section {
            background: #1b1f27;
            border: 1px solid #292e38;
            border-radius: 12px;
            margin-bottom: 20px;
            overflow: hidden;
        }

        .section-header {
            padding: 18px 20px;
            border-bottom: 1px solid #292e38;
            font-size: 17px;
            font-weight: 600;
        }

        .section-header-action {
            display: flex;
            justify-content: space-between;
            align-items: center;
            gap: 16px;
        }

        .section-body {
            padding: 8px 20px;
        }

        /*
         * 작품 한 줄 구성
         *
         * 1열 : 배우 이름 + 일본어 이름 + Sukebei 검색 코드
         * 2열 : 상태
         * 3열 : 한국어 제목 + 일본어 원제
         * 4열 : 진행률 / 수동 작업
         */
        .movie {
            display: grid;
            grid-template-columns: minmax(300px, 1.15fr) 150px minmax(300px, 2fr) 220px;
            gap: 16px;
            align-items: center;
            padding: 16px 0;
            border-bottom: 1px solid #292e38;
        }

        .movie:last-child {
            border-bottom: none;
        }

        .movie-info {
            min-width: 0;
        }

        .actress-name {
            font-size: 15px;
            font-weight: 600;
            margin-bottom: 5px;
        }

        .actress-ko {
            color: #f1f3f5;
        }

        .actress-jp {
            color: #aeb4bf;
            margin-left: 5px;
        }

        .movie-code {
            color: #69b7f3;
            font-size: 11px;
            font-weight: 600;
            letter-spacing: .2px;
            margin-top: 2px;
        }

        .movie-code-label {
            color: #777f8b;
            font-weight: 400;
            margin-right: 4px;
        }

        .movie-title-ko {
            color: #f1f3f5;
            font-size: 15px;
            font-weight: 600;
            line-height: 1.55;
        }

        .movie-title-jp {
            color: #777f8b;
            font-size: 11px;
            line-height: 1.45;
            margin-top: 5px;
        }

        .movie-title-fallback {
            color: #b8bec8;
            font-size: 14px;
            line-height: 1.5;
        }

        .status-cell {
            display: flex;
            align-items: center;
            justify-content: flex-start;
        }

        .status {
            display: inline-flex;
            align-items: center;
            gap: 5px;
            padding: 5px 9px;
            border-radius: 6px;
            font-size: 12px;
            font-weight: 600;
            white-space: nowrap;
        }

        .status-icon {
            font-size: 13px;
            line-height: 1;
        }

        .status-new {
            background: #303348;
            color: #9fa9ff;
        }

        .status-waiting {
            background: #3a3020;
            color: #f3c969;
        }

        .status-searching {
            background: #303348;
            color: #b5bdff;
        }

        .status-downloading {
            background: #203348;
            color: #69b7f3;
        }

        .status-downloaded {
            background: #20372b;
            color: #73d39a;
        }

        .status-failed {
            background: #3b2427;
            color: #f27d86;
        }

        .status-exception {
            background: #3a3020;
            color: #f3c969;
        }

        .status-excluded {
            background: #303238;
            color: #9da2ab;
        }

        .reason {
            color: #aeb4bf;
            font-size: 13px;
            line-height: 1.5;
        }

        .manual-actions {
            display: flex;
            flex-direction: column;
            gap: 7px;
        }

        .approve-button {
            background: #20372b;
            border-color: #405746;
            color: #9fe3ad;
        }

        .exclude-button,
        .delete-button {
            background: #3b2427;
            border-color: #5a3439;
            color: #f2a0a6;
        }

        .manual-retry-button {
            background: #203348;
            border-color: #405a76;
            color: #8fc7ff;
        }

        .manual-reason {
            color: #8b919c;
            font-size: 11px;
            margin-top: 2px;
        }

        .progress-wrap {
            width: 100%;
        }

        .progress-bar {
            width: 100%;
            height: 7px;
            background: #30353e;
            border-radius: 10px;
            overflow: hidden;
            margin-top: 8px;
        }

        .progress {
            height: 100%;
            background: #4da3ff;
        }

        .empty {
            padding: 28px 0;
            color: #777f8b;
            text-align: center;
        }

        @media (max-width: 1000px) {
            .summary {
                grid-template-columns: repeat(3, 1fr);
            }

            .movie {
                grid-template-columns: 1fr 150px;
            }

            .movie-title,
            .movie-actions {
                grid-column: 1 / -1;
            }
        }

        @media (max-width: 600px) {
            .container {
                padding: 16px;
            }

            .summary {
                grid-template-columns: repeat(2, 1fr);
            }

            .header {
                display: block;
            }

            .header-actions {
                margin-top: 10px;
                flex-wrap: wrap;
            }

            .section-header-action {
                align-items: flex-start;
                flex-direction: column;
            }

            .movie {
                grid-template-columns: 1fr;
                gap: 10px;
            }

            .movie-title,
            .movie-actions {
                grid-column: auto;
            }
        }
    
        .actress-history-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:16px;padding:14px 16px;background:#1b1f27;border:1px solid #292e38;border-radius:12px}.actress-history-toolbar input,.actress-history-toolbar select{height:36px;padding:7px 10px;border:1px solid #343a46;border-radius:6px;outline:none;background:#111318;color:#f1f3f5;font-size:12px}.actress-history-toolbar input{flex:1;min-width:220px}.history-back-button{background:#242934;border-color:#405a76;color:#8fc7ff}.history-summary{color:#8b919c;font-size:12px;margin-bottom:12px}.history-row{display:grid;grid-template-columns:130px 150px minmax(300px,1fr) 140px;gap:16px;align-items:center;padding:15px 0;border-bottom:1px solid #292e38}.history-row:last-child{border-bottom:none}.history-code{color:#69b7f3;font-size:13px;font-weight:700}.history-actress{color:#f1f3f5;font-size:13px;font-weight:600}.history-search-code{color:#777f8b;font-size:11px;margin-top:4px}.history-date{color:#aeb4bf;font-size:12px}.history-title-ko{color:#f1f3f5;font-size:14px;font-weight:600;line-height:1.5}.history-title-jp{color:#777f8b;font-size:11px;line-height:1.45;margin-top:5px}.history-status{display:flex;justify-content:flex-start}@media(max-width:900px){.history-row{grid-template-columns:130px 120px}.history-title,.history-status{grid-column:1/-1}}@media(max-width:600px){.actress-history-toolbar{flex-direction:column;align-items:stretch}.actress-history-toolbar input{min-width:0}.history-row{grid-template-columns:1fr;gap:8px}.history-title,.history-status{grid-column:auto}}
.movielist-row{display:grid;grid-template-columns:143px 86px 86px minmax(420px,1fr) 115px 115px;gap:16px;align-items:center;padding:10px 12px;border-bottom:1px solid #ffd4e2;border-radius:8px;transition:background .15s ease}.movielist-row:last-child{border-bottom:none}.movielist-row:nth-child(odd){background:var(--theme-tint-b)}.movielist-row:nth-child(even){background:var(--theme-tint-a)}.movielist-row:hover{background:var(--theme-hover-bg-2)}.movielist-actress{color:var(--theme-text);font-size:13px;font-weight:700;min-width:0;text-align:center}.movielist-actress-button{display:block;width:100%;padding:0;border:0;background:transparent;color:inherit;font:inherit;font-weight:700;text-align:center;cursor:pointer;line-height:1.35;box-shadow:none}.movielist-actress-button:hover{background:transparent;color:var(--theme-main-dark)}.movielist-actress-jp{display:block;margin-top:3px;color:var(--theme-muted-soft);font-size:10px;font-weight:400;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.movielist-code{color:var(--theme-main);font-size:13px;font-weight:600;letter-spacing:.25px;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.movielist-date{color:var(--theme-muted-soft);font-size:12px;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.movielist-title-ko{color:var(--theme-text);font-size:13px;font-weight:600;line-height:1.5;min-width:0;overflow:hidden;text-overflow:ellipsis}.movielist-title-jp{color:var(--theme-muted-soft);font-size:10px;font-weight:400;line-height:1.4;margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.movielist-status{display:flex;align-items:center;justify-content:center;min-width:0;position:relative}.movielist-status .status{max-width:100%;overflow:hidden;text-overflow:ellipsis}.movielist-reason{position:absolute;left:0;bottom:calc(100% + 8px);z-index:120;width:max-content;max-width:280px;cursor:help}.movielist-reason-tooltip{display:block;padding:8px 10px;border-radius:7px;background:#2d2d32;color:#fff;font-size:12px;line-height:1.45;font-weight:500;white-space:normal;text-align:left;box-shadow:0 4px 14px rgba(0,0,0,.22);opacity:0;visibility:hidden;pointer-events:none;transform:translateY(3px);transition:opacity .12s ease,transform .12s ease}.movielist-reason-tooltip::after{content:"";position:absolute;left:14px;top:100%;border:5px solid transparent;border-top-color:#2d2d32}.movielist-status.has-reason:hover .movielist-reason,.movielist-status.has-reason:focus-within .movielist-reason,.movielist-status.has-reason:hover .movielist-reason-tooltip,.movielist-status.has-reason:focus-within .movielist-reason-tooltip{opacity:1;visibility:visible;transform:translateY(0)}.movielist-reason-tooltip{position:absolute;left:0;bottom:0;width:max-content;max-width:280px}.movielist-progress{color:var(--theme-muted-soft);font-size:10px;margin-top:4px}.movielist-delete-cell{display:flex;align-items:center;justify-content:center;min-width:0}.movielist-delete-button{background:#fff0f3;border:1px solid #f2a2b5;color:#d94c68;border-radius:6px;padding:6px 10px;font-size:12px;cursor:pointer}.movielist-delete-button:hover{background:#ffe0e7}.movielist-all-button{background:var(--theme-tint-f);border-color:var(--theme-accent-soft);color:var(--theme-link-text);white-space:nowrap}.movielist-all-button:hover{background:var(--theme-hover-bg-2)}@media(max-width:1100px){.movielist-row{grid-template-columns:120px 82px 82px minmax(260px,1fr) 130px 80px}}@media(max-width:900px){.movielist-row{grid-template-columns:1fr 1fr 1fr}.movielist-title,.movielist-status,.movielist-delete-cell{grid-column:1 / -1}.movielist-actress,.movielist-code,.movielist-date{text-align:left}.movielist-actress-button{text-align:left}}@media(max-width:700px){.movielist-row{grid-template-columns:1fr 1fr;gap:8px}.movielist-date,.movielist-title,.movielist-status,.movielist-delete-cell{grid-column:auto}}

/* Dashboard summary typography - visual only */
.dashboard-summary,
.summary-cards,
.stats-grid {
    text-align: center;
}

.dashboard-summary > *,
.summary-cards > *,
.stats-grid > * {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
}

.dashboard-summary .stat-label,
.summary-cards .stat-label,
.stats-grid .stat-label {
    font-size: 19px !important;
    font-weight: 700 !important;
    line-height: 1.25;
}

.dashboard-summary .stat-value,
.summary-cards .stat-value,
.stats-grid .stat-value {
    font-size: 32px !important;
    font-weight: 800 !important;
    line-height: 1.15;
}



        /* Dashboard movie rows: 1/6 + 1/6 + 3/6 + 1/6 */
        #page-dashboard .movie {
            grid-template-columns: 1fr 1fr 3fr 1fr;
            gap: 12px;
            padding: 14px 0;
        }

        #page-dashboard .actress-name {
            font-size: 14px;
            line-height: 1.45;
        }

        #page-dashboard .status-cell {
            min-width: 0;
            flex-direction: column;
            align-items: flex-start;
            gap: 7px;
        }

        #page-dashboard .status-cell .status {
            font-size: 13px;
        }

        #page-dashboard .movie-title-ko {
            font-size: 15px;
        }

        #page-dashboard .movie-actions {
            min-width: 0;
        }

        #page-dashboard .manual-actions {
            width: 100%;
        }

        #page-dashboard .manual-actions button {
            width: 100%;
        }

        #page-dashboard .movie-actions > .dashboard-delete-action {
            width: 100%;
        }

        #page-dashboard .dashboard-delete-action {
            background: #3b2427;
            border-color: #5a3439;
            color: #f2a0a6;
        }

        #page-dashboard .dashboard-progress {
            width: 100%;
        }

        #page-dashboard .summary .card-label {
            font-size: 17px;
            font-weight: 700;
            line-height: 1.25;
        }

        @media (max-width: 1000px) {
            #page-dashboard .movie {
                grid-template-columns: 1fr 1fr 3fr 1fr;
            }
        }

        @media (max-width: 700px) {
            #page-dashboard .movie {
                grid-template-columns: 1fr;
            }
        }

        
/* Angels Library - Theme System (Rose Quartz = 기존 Pink Theme 기본값) */
:root{
  --theme-bg-top:#ffeef6;
  --theme-bg-mid:#ffe8f2;
  --theme-bg-bottom:#ff7fae;
  --theme-main:#f83f7b;
  --theme-main-dark:#e52f6d;
  --theme-soft:#ffd7e8;
  --theme-border:#ffc2d9;
  --theme-card:rgba(255,248,252,.94);
  --theme-text:#393239;
  --theme-muted:#826f7b;
  --theme-label-muted:#765765;
  --theme-muted-soft:#987e8b;
  --theme-hover-bg:#fff0f6;
  --theme-hover-bg-2:#ffe3ef;
  --theme-tint-a:#fff4f9;
  --theme-tint-b:#ffd9e9;
  --theme-tint-c:#fff8fb;
  --theme-tint-d:#ffddea;
  --theme-tint-e:#fff6fa;
  --theme-tint-f:#fff1f7;
  --theme-accent:#ff9fc3;
  --theme-accent-soft:#ffabc9;
  --theme-accent-strong:#ff6f9d;
  --theme-card-border:#ffb5d2;
  --theme-card-hover-border:#ff7faa;
  --theme-active-a:#ff4b86;
  --theme-active-b:#f33c78;
  --theme-active-c:#e9316c;
  --theme-image-bg:#ffe1ed;
  --theme-link-text:#d92f68;
}

/* Angels Library - Additional Dashboard Themes (data-theme override) */

[data-theme="sky-blue"]{
  --theme-bg-top:#eaf6ff;
  --theme-bg-mid:#e0f1ff;
  --theme-bg-bottom:#7fc4ff;
  --theme-main:#2f8fe0;
  --theme-main-dark:#1f74c4;
  --theme-soft:#d7ecff;
  --theme-border:#bfe0ff;
  --theme-card:rgba(248,252,255,.94);
  --theme-text:#243239;
  --theme-muted:#5e7a8c;
  --theme-label-muted:#4a6577;
  --theme-muted-soft:#7791a1;
  --theme-hover-bg:#eef7ff;
  --theme-hover-bg-2:#ddeeff;
  --theme-tint-a:#f0f8ff;
  --theme-tint-b:#d3e9fb;
  --theme-tint-c:#f5fbff;
  --theme-tint-d:#dcefff;
  --theme-tint-e:#eaf6ff;
  --theme-tint-f:#e6f3ff;
  --theme-accent:#7ec2f5;
  --theme-accent-soft:#9fd2f7;
  --theme-accent-strong:#4fa8e8;
  --theme-card-border:#a9d6f5;
  --theme-card-hover-border:#6fb8ee;
  --theme-active-a:#2f8fe0;
  --theme-active-b:#1f74c4;
  --theme-active-c:#175f9e;
  --theme-image-bg:#dcefff;
  --theme-link-text:#1f74c4;
}

[data-theme="mint-green"]{
  --theme-bg-top:#eafff5;
  --theme-bg-mid:#e2fbf0;
  --theme-bg-bottom:#7fe0b8;
  --theme-main:#22b088;
  --theme-main-dark:#178f6d;
  --theme-soft:#d6f7e8;
  --theme-border:#bdeed9;
  --theme-card:rgba(248,255,251,.94);
  --theme-text:#233b34;
  --theme-muted:#5e8c78;
  --theme-label-muted:#4a7362;
  --theme-muted-soft:#77a191;
  --theme-hover-bg:#edfff6;
  --theme-hover-bg-2:#dbf7ea;
  --theme-tint-a:#f0fff8;
  --theme-tint-b:#d1f4e3;
  --theme-tint-c:#f4fffa;
  --theme-tint-d:#daf7e9;
  --theme-tint-e:#e9fff4;
  --theme-tint-f:#e4faf0;
  --theme-accent:#7fdbb6;
  --theme-accent-soft:#9de5c6;
  --theme-accent-strong:#4bc498;
  --theme-card-border:#a3e7c9;
  --theme-card-hover-border:#5fd0a3;
  --theme-active-a:#22b088;
  --theme-active-b:#178f6d;
  --theme-active-c:#0f7256;
  --theme-image-bg:#daf7e9;
  --theme-link-text:#178f6d;
}

[data-theme="lavender"]{
  --theme-bg-top:#f4efff;
  --theme-bg-mid:#efe8ff;
  --theme-bg-bottom:#b79bef;
  --theme-main:#8a5fd6;
  --theme-main-dark:#6f45bd;
  --theme-soft:#e7dbff;
  --theme-border:#d8c5f7;
  --theme-card:rgba(251,249,255,.94);
  --theme-text:#332f3b;
  --theme-muted:#7c6f8c;
  --theme-label-muted:#665a77;
  --theme-muted-soft:#9186a1;
  --theme-hover-bg:#f5f0ff;
  --theme-hover-bg-2:#ebe0ff;
  --theme-tint-a:#f6f1ff;
  --theme-tint-b:#e3d3f9;
  --theme-tint-c:#f8f5ff;
  --theme-tint-d:#e9dcff;
  --theme-tint-e:#f2ecff;
  --theme-tint-f:#eee7ff;
  --theme-accent:#c1a3ee;
  --theme-accent-soft:#cdb3f2;
  --theme-accent-strong:#a781e6;
  --theme-card-border:#d3b8f4;
  --theme-card-hover-border:#b18ded;
  --theme-active-a:#8a5fd6;
  --theme-active-b:#6f45bd;
  --theme-active-c:#5a389c;
  --theme-image-bg:#e9dcff;
  --theme-link-text:#6f45bd;
}

[data-theme="peach-coral"]{
  --theme-bg-top:#fff3ea;
  --theme-bg-mid:#ffece0;
  --theme-bg-bottom:#ff9d78;
  --theme-main:#f16a45;
  --theme-main-dark:#d8532f;
  --theme-soft:#ffe0cf;
  --theme-border:#ffcbb0;
  --theme-card:rgba(255,250,246,.94);
  --theme-text:#3b332f;
  --theme-muted:#8c7365;
  --theme-label-muted:#775e51;
  --theme-muted-soft:#a18a7c;
  --theme-hover-bg:#fff4ec;
  --theme-hover-bg-2:#ffe6d6;
  --theme-tint-a:#fff5ee;
  --theme-tint-b:#ffdac2;
  --theme-tint-c:#fff9f4;
  --theme-tint-d:#ffe1cd;
  --theme-tint-e:#fff1e6;
  --theme-tint-f:#ffece0;
  --theme-accent:#f8ab86;
  --theme-accent-soft:#fabb9c;
  --theme-accent-strong:#f2895c;
  --theme-card-border:#f9c3a3;
  --theme-card-hover-border:#f39a6d;
  --theme-active-a:#f16a45;
  --theme-active-b:#d8532f;
  --theme-active-c:#b8431f;
  --theme-image-bg:#ffe1cd;
  --theme-link-text:#d8532f;
}

[data-theme="baby-yellow"]{
  --theme-bg-top:#fffbe8;
  --theme-bg-mid:#fff8db;
  --theme-bg-bottom:#ffd964;
  --theme-main:#e0a900;
  --theme-main-dark:#bd8c00;
  --theme-soft:#fff1bd;
  --theme-border:#ffe699;
  --theme-card:rgba(255,253,244,.94);
  --theme-text:#3a3527;
  --theme-muted:#8c7d50;
  --theme-label-muted:#77693f;
  --theme-muted-soft:#a3946a;
  --theme-hover-bg:#fffcee;
  --theme-hover-bg-2:#fff4ce;
  --theme-tint-a:#fffce9;
  --theme-tint-b:#ffedad;
  --theme-tint-c:#fffdf2;
  --theme-tint-d:#fff2c4;
  --theme-tint-e:#fffae0;
  --theme-tint-f:#fff6cf;
  --theme-accent:#f5cf5a;
  --theme-accent-soft:#f7d878;
  --theme-accent-strong:#e8bb2d;
  --theme-card-border:#f4dd8e;
  --theme-card-hover-border:#eec449;
  --theme-active-a:#e0a900;
  --theme-active-b:#bd8c00;
  --theme-active-c:#9a7300;
  --theme-image-bg:#fff2c4;
  --theme-link-text:#9a7300;
}

[data-theme="aqua-marine"]{
  --theme-bg-top:#e9fffb;
  --theme-bg-mid:#dffff8;
  --theme-bg-bottom:#69e0cf;
  --theme-main:#0fa898;
  --theme-main-dark:#0c8779;
  --theme-soft:#cdf7ef;
  --theme-border:#a9ede0;
  --theme-card:rgba(246,255,253,.94);
  --theme-text:#233935;
  --theme-muted:#5c8a82;
  --theme-label-muted:#487069;
  --theme-muted-soft:#77a099;
  --theme-hover-bg:#ecfffb;
  --theme-hover-bg-2:#d7f9f2;
  --theme-tint-a:#effffb;
  --theme-tint-b:#c9f3e9;
  --theme-tint-c:#f4fffc;
  --theme-tint-d:#d3f7ef;
  --theme-tint-e:#e6fffa;
  --theme-tint-f:#dffbf5;
  --theme-accent:#6bd8c6;
  --theme-accent-soft:#8ce2d3;
  --theme-accent-strong:#38c2ac;
  --theme-card-border:#93e6d6;
  --theme-card-hover-border:#4fd0ba;
  --theme-active-a:#0fa898;
  --theme-active-b:#0c8779;
  --theme-active-c:#096b60;
  --theme-image-bg:#d3f7ef;
  --theme-link-text:#0c8779;
}

[data-theme="cream-beige"]{
  --theme-bg-top:#fbf6ee;
  --theme-bg-mid:#f7f0e2;
  --theme-bg-bottom:#d9bd8f;
  --theme-main:#a9793f;
  --theme-main-dark:#8c6231;
  --theme-soft:#f0e2c9;
  --theme-border:#e6d2ac;
  --theme-card:rgba(253,250,244,.94);
  --theme-text:#3a332a;
  --theme-muted:#8c7a62;
  --theme-label-muted:#77664f;
  --theme-muted-soft:#a3907a;
  --theme-hover-bg:#faf5ec;
  --theme-hover-bg-2:#f2e6cf;
  --theme-tint-a:#fbf6ee;
  --theme-tint-b:#ecdcb9;
  --theme-tint-c:#fdfaf5;
  --theme-tint-d:#f0e0c3;
  --theme-tint-e:#f8f1e3;
  --theme-tint-f:#f4ead6;
  --theme-accent:#d3b47f;
  --theme-accent-soft:#dcc296;
  --theme-accent-strong:#c39d5f;
  --theme-card-border:#e0c898;
  --theme-card-hover-border:#caa668;
  --theme-active-a:#a9793f;
  --theme-active-b:#8c6231;
  --theme-active-c:#714f27;
  --theme-image-bg:#f0e0c3;
  --theme-link-text:#8c6231;
}

[data-theme="cotton-candy"]{
  --theme-bg-top:#fdf1ff;
  --theme-bg-mid:#f6ecff;
  --theme-bg-bottom:#ffb0e6;
  --theme-main:#e567c9;
  --theme-main-dark:#c94bab;
  --theme-soft:#ffe1f5;
  --theme-border:#ffc7ea;
  --theme-card:rgba(255,249,254,.94);
  --theme-text:#3a3040;
  --theme-muted:#8c78a1;
  --theme-label-muted:#77638c;
  --theme-muted-soft:#a390b8;
  --theme-hover-bg:#fdf1ff;
  --theme-hover-bg-2:#f7e0f7;
  --theme-tint-a:#fdf2fd;
  --theme-tint-b:#f6d6f2;
  --theme-tint-c:#fef7fe;
  --theme-tint-d:#f9dcf7;
  --theme-tint-e:#fbeafe;
  --theme-tint-f:#f8e3fb;
  --theme-accent:#f3a3e0;
  --theme-accent-soft:#f6b8e6;
  --theme-accent-strong:#ea88d3;
  --theme-card-border:#f6c2ec;
  --theme-card-hover-border:#ee9fdf;
  --theme-active-a:#e567c9;
  --theme-active-b:#c94bab;
  --theme-active-c:#a83a8f;
  --theme-image-bg:#f9dcf7;
  --theme-link-text:#c94bab;
}

[data-theme="aurora"]{
  --theme-bg-top:#eef4ff;
  --theme-bg-mid:#f1ecff;
  --theme-bg-bottom:#c99bff;
  --theme-main:#7c6fe0;
  --theme-main-dark:#6255c4;
  --theme-soft:#e6e0ff;
  --theme-border:#d3c9fb;
  --theme-card:rgba(250,249,255,.94);
  --theme-text:#2c2c3d;
  --theme-muted:#7a749c;
  --theme-label-muted:#655f85;
  --theme-muted-soft:#948eb5;
  --theme-hover-bg:#f1f0ff;
  --theme-hover-bg-2:#e6ddff;
  --theme-tint-a:#f2f0ff;
  --theme-tint-b:#dcd0fb;
  --theme-tint-c:#f7f6ff;
  --theme-tint-d:#e3d7fc;
  --theme-tint-e:#eceafd;
  --theme-tint-f:#e7e2fc;
  --theme-accent:#a79bee;
  --theme-accent-soft:#b6acf1;
  --theme-accent-strong:#9484e8;
  --theme-card-border:#c1b3f7;
  --theme-card-hover-border:#a591ee;
  --theme-active-a:#7c6fe0;
  --theme-active-b:#6255c4;
  --theme-active-c:#4e44a3;
  --theme-image-bg:#e3d7fc;
  --theme-link-text:#6255c4;
}


html{min-height:100%;background:var(--theme-bg-top)}
body{
  min-height:100vh;
  background:linear-gradient(180deg,var(--theme-bg-top) 0%,var(--theme-bg-mid) 58%,var(--theme-bg-bottom) 100%);
  background-attachment:fixed;
  color:var(--theme-text);
}
.title,.page-title,.section-header{color:var(--theme-main-dark)}
.subtitle,.updated,.page-description,.actress-order-help,.actress-status,.empty,.history-summary{color:var(--theme-muted)}

button{
  border-color:var(--theme-border);
  background:rgba(255,255,255,.82);
  color:var(--theme-main-dark);
  box-shadow:0 2px 8px rgba(229,47,109,.06);
}
button:hover{background:var(--theme-hover-bg);border-color:var(--theme-accent);color:var(--theme-main)}

.top-menu-button{
  border-color:var(--theme-border);
  background:rgba(255,255,255,.82);
  color:var(--theme-main-dark);
  text-align:center;
}
.top-menu-button:hover{background:var(--theme-hover-bg);color:var(--theme-main)}
.top-menu-button.active{
  background:linear-gradient(135deg,var(--theme-active-a),var(--theme-active-b));
  border-color:var(--theme-active-a);
  color:#fff;
  box-shadow:0 5px 14px rgba(243,60,120,.22);
}

.actress-form,.card,.section,.actress-history-toolbar{
  background:var(--theme-card);
  border-color:var(--theme-border);
  box-shadow:0 4px 18px rgba(229,47,109,.08);
}
.form-field label,.actress-edit-field label,.schedule-label{color:var(--theme-label-muted)}
.form-field input,.actress-history-toolbar input,.actress-history-toolbar select,
.actress-edit-field input,.schedule-fixed-value,.schedule-slot-row select,.schedule-time-input,.schedule-dmm-day-input{
  border-color:var(--theme-border);
  background:#fff;
  color:var(--theme-text);
}
.form-field input:focus,.actress-history-toolbar input:focus,.actress-edit-field input:focus{
  border-color:var(--theme-accent-strong);
  box-shadow:0 0 0 3px rgba(255,111,157,.12);
}

.actress-card{
  background:linear-gradient(180deg,var(--theme-tint-a) 0%,var(--theme-tint-b) 100%);
  border-color:var(--theme-card-border);
  box-shadow:0 5px 16px rgba(229,47,109,.10);
}
.actress-card:hover{border-color:var(--theme-card-hover-border);box-shadow:0 7px 20px rgba(229,47,109,.16)}
.actress-card.dragging{border-color:var(--theme-accent-strong)}
.actress-card.drag-over{border-color:var(--theme-active-a);box-shadow:0 0 0 2px var(--theme-active-a) inset}
.actress-group-header{background:rgba(255,239,247,.94);border-color:var(--theme-card-border)}
.actress-group-header.drag-over{border-color:var(--theme-active-a);background:var(--theme-image-bg);box-shadow:0 0 0 2px var(--theme-active-a) inset}
.actress-group-title,.actress-card-name{color:var(--theme-main-dark)}
.actress-group-count,.actress-card-jp{color:var(--theme-muted)}
.actress-image{background:var(--theme-image-bg)}

.actress-card-sukebei-button{
  background:var(--theme-tint-e);border-color:var(--theme-accent-soft);color:var(--theme-link-text);
}
.actress-card-sukebei-button:hover{background:var(--theme-hover-bg-2)}
.actress-card-avdbs-button{
  background:var(--theme-tint-e);border-color:var(--theme-accent-strong);color:#ef3d78;font-weight:800;
}
.actress-card-dmm-button{
  background:var(--theme-tint-f);border-color:var(--theme-accent);color:var(--theme-link-text);font-weight:800;
}
.actress-card-dmm-button:hover{background:var(--theme-hover-bg-2)}
.actress-card-telegram-send-button{
  background:var(--theme-tint-f);border-color:var(--theme-accent);color:var(--theme-link-text);
}
.actress-card-telegram-send-button:hover{background:var(--theme-tint-d)}
.actress-card-edit-button{
  background:var(--theme-tint-c);border-color:#ffc4d9;color:#8a6172;
}
.actress-delete-button,.exclude-button,.delete-button,#page-dashboard .dashboard-delete-action{
  background:#fff0f3;border-color:#f2a2b5;color:#d94c68;
}
.actress-delete-button:hover,.exclude-button:hover,.delete-button:hover{background:#ffe0e7}

.card-label{color:var(--theme-main-dark)}
.card-value{color:#332f37}
.section-header{border-bottom-color:#ffd0df}
.section-body{background:rgba(255,250,253,.34)}
.movie,.history-row,.movielist-row{border-bottom-color:#ffd4e2}

.actress-name,.actress-ko,.movie-title-ko,.history-actress,.history-title-ko,
.movielist-actress,.movielist-title-ko{color:var(--theme-text)}
.actress-jp,.movie-title-jp,.history-title-jp,.movielist-title-jp{color:var(--theme-muted-soft)}
.movie-code,.history-code,.movielist-code{color:var(--theme-main)}
.movie-code-label,.reason,.manual-reason,.history-search-code,.movielist-date,.movielist-reason{color:var(--theme-muted-soft)}

.status-new,.status-searching{background:#eeeaff;color:#7469d7}
.status-waiting,.status-exception{background:#fff1d8;color:#c88722}
.status-downloading{background:#e8f0ff;color:#5878d8}
.status-downloaded{background:#e5f8ee;color:#269862}
.status-failed{background:#ffe5eb;color:#d94b69}
.status-excluded{background:#f0edf0;color:#837985}

.progress-bar{background:#ffd6e5}
.progress{background:linear-gradient(90deg,var(--theme-active-a),#ff7eaa)}

.schedule-overlay,.actress-edit-overlay{background:rgba(98,31,59,.30)}
.schedule-modal,.actress-edit-modal{
  background:var(--theme-tint-c);
  border-color:var(--theme-border);
  box-shadow:0 20px 60px rgba(156,42,91,.20);
}
.schedule-title,.actress-edit-title{color:var(--theme-main-dark)}
.schedule-description,.schedule-message,.actress-edit-message{color:var(--theme-muted)}
.schedule-fixed-row,.schedule-slot-row{border-bottom-color:#ffd3e2}
.schedule-manual-row button{background:var(--theme-hover-bg);border-color:var(--theme-accent);color:var(--theme-link-text)}
.schedule-days label{border-color:var(--theme-border);background:var(--theme-tint-c);color:var(--theme-label-muted)}
.schedule-days label:has(input:checked){border-color:var(--theme-accent-strong);background:var(--theme-image-bg);color:var(--theme-link-text)}
.schedule-save,.actress-edit-save{
  background:linear-gradient(135deg,var(--theme-active-a),var(--theme-active-b));
  border-color:var(--theme-active-a);color:#fff;
}
.schedule-save:hover,.actress-edit-save:hover{
  background:linear-gradient(135deg,var(--theme-active-b),var(--theme-active-c));color:#fff;
}
.history-back-button{background:var(--theme-hover-bg);border-color:var(--theme-accent-soft);color:var(--theme-link-text)}
.movielist-delete-button{background:#fff0f3;border-color:#f2a2b5;color:#d94c68}
.movielist-delete-button:hover{background:#ffe0e7}

#page-dashboard .summary>.card{
  text-align:center;
  background:rgba(255,248,252,.92);
  border-color:var(--theme-border);
}
#page-dashboard .summary .card-label,#page-dashboard .summary .card-value{text-align:center}

#page-dashboard .summary>.card{
  position:relative;
  min-height:94px;
  padding:12px 14px;
  border-width:1px;
  border-style:solid;
  box-shadow:0 4px 14px rgba(70,45,65,.08);
  transition:transform .15s ease, box-shadow .15s ease;
  display:grid;
  grid-template-columns:46px auto;
  grid-template-rows:auto auto;
  column-gap:20px;
  row-gap:2px;
  align-content:center;
  justify-content:center;
  text-align:left;
}
#page-dashboard .summary>.card:hover{
  transform:translateY(-1px);
  box-shadow:0 6px 16px rgba(70,45,65,.12);
}
#page-dashboard .summary>.card .summary-icon{
  grid-column:1;
  grid-row:1 / 3;
  align-self:center;
  display:flex;
  align-items:center;
  justify-content:center;
  width:46px;
  height:46px;
  margin:0;
  border:0;
  border-radius:11px;
  color:#fff;
  font-size:0;
  line-height:1;
  box-shadow:0 3px 7px rgba(0,0,0,.10);
}
#page-dashboard .summary>.card .summary-icon svg{
  width:25px;
  height:25px;
  fill:none;
  stroke:currentColor;
  stroke-width:2.2;
  stroke-linecap:round;
  stroke-linejoin:round;
}
#page-dashboard .summary>.card .card-label{
  grid-column:2;
  grid-row:1;
  align-self:end;
  margin:0 0 0 0;
  font-size:14px;
  font-weight:800;
  text-align:left;
}
#page-dashboard .summary>.card .card-value{
  grid-column:2;
  grid-row:2;
  align-self:start;
  margin:0;
  font-size:29px;
  line-height:1.05;
  font-weight:850;
  text-align:left;
}


/* Summary cards: status colors are intentionally distinct for quick scanning. */
#page-dashboard .summary-card-total{
  border-color:#c9b9e6;
}
#page-dashboard .summary-card-total .summary-icon{
  background:#7251a8;
}
#page-dashboard .summary-card-total .card-label,
#page-dashboard .summary-card-total .card-value{
  color:#684897;
}

#page-dashboard .summary-card-new{
  border-color:#f3b3c4;
}
#page-dashboard .summary-card-new .summary-icon{
  background:#ef3f67;
}
#page-dashboard .summary-card-new .card-label,
#page-dashboard .summary-card-new .card-value{
  color:#df315a;
}

#page-dashboard .summary-card-downloading{
  border-color:#a9c6f3;
}
#page-dashboard .summary-card-downloading .summary-icon{
  background:#2f6fd3;
}
#page-dashboard .summary-card-downloading .card-label,
#page-dashboard .summary-card-downloading .card-value{
  color:#2462bf;
}

#page-dashboard .summary-card-downloaded{
  border-color:#a9dbbd;
}
#page-dashboard .summary-card-downloaded .summary-icon{
  background:#2e9b5f;
}
#page-dashboard .summary-card-downloaded .card-label,
#page-dashboard .summary-card-downloaded .card-value{
  color:#23824e;
}

#page-dashboard .summary-card-waiting{
  border-color:#f1c18e;
}
#page-dashboard .summary-card-waiting .summary-icon{
  background:#ed8a22;
}
#page-dashboard .summary-card-waiting .card-label,
#page-dashboard .summary-card-waiting .card-value{
  color:#d97716;
}

#page-dashboard .summary-card-exception{
  border-color:#c7c9cd;
}
#page-dashboard .summary-card-exception .summary-icon{
  background:#666b73;
}
#page-dashboard .summary-card-exception .card-label,
#page-dashboard .summary-card-exception .card-value{
  color:#5b6068;
}

#page-dashboard .new-movie-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
  padding:14px;
  background:transparent;
}
#page-dashboard .new-movie-card{
  display:grid;
  grid-template-columns:140px minmax(0,1fr);
  gap:12px;
  min-width:0;
  min-height:220px;
  padding:10px;
  background:linear-gradient(135deg,var(--theme-tint-c) 0%,var(--theme-tint-d) 100%);
  border:1px solid var(--theme-card-border);
  border-radius:10px;
  box-shadow:0 3px 12px rgba(229,47,109,.08);
}
/* 다운로드 완료 카드: 신작 카드와 동일한 시각 체계 */
/* 다운로드 완료 / 대기 / 예외 카드 공통 스타일 */
#page-dashboard .status-movie-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
}
#page-dashboard .status-movie-card{
  display:grid;
  grid-template-columns:140px minmax(0,1fr);
  gap:12px;
  min-width:0;
  min-height:220px;
  padding:10px;
  border:1px solid #c7c9cd;
  border-radius:10px;
  box-shadow:0 3px 12px rgba(70,45,65,.08);
}
#page-dashboard .status-movie-downloaded{
  background:linear-gradient(135deg,#f7fff9 0%,#e7f8ed 100%);
  border-color:#a9dbbd;
}
#page-dashboard .status-movie-waiting{
  background:linear-gradient(135deg,#fffaf4 0%,#fff0dc 100%);
  border-color:#f1c18e;
  box-shadow:0 3px 12px rgba(237,138,34,.08);
}
#page-dashboard .status-movie-exception{
  background:linear-gradient(135deg,#f8f8f9 0%,#ededee 100%);
  border-color:#c7c9cd;
  box-shadow:0 3px 12px rgba(102,107,115,.08);
}
#page-dashboard .status-movie-card:hover{
  box-shadow:0 5px 16px rgba(70,45,65,.13);
}
#page-dashboard .status-movie-image{
  width:140px;
  height:200px;
  aspect-ratio:147 / 200;
  border-radius:8px;
  overflow:hidden;
  background:#eef2f0;
  display:flex;
  align-items:center;
  justify-content:center;
  color:#718078;
  font-size:11px;
  text-align:center;
}
#page-dashboard .status-movie-image img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
#page-dashboard .status-movie-content{
  min-width:0;
  height:200px;
  min-height:200px;
  display:flex;
  flex-direction:column;
}
#page-dashboard .status-movie-actress{
  font-size:15px;
  font-weight:850;
  margin-bottom:4px;
  text-align:center;
  overflow:hidden;
  white-space:nowrap;
  text-overflow:ellipsis;
}
#page-dashboard .status-movie-code{
  font-size:12px;
  font-weight:600;
  margin-bottom:5px;
  text-align:center;
}
#page-dashboard .status-movie-title{
  font-size:13px;
  line-height:1.42;
  font-weight:700;
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:7;
  line-clamp:7;
  overflow:hidden;
  word-break:keep-all;
  overflow-wrap:anywhere;
  max-height:9.94em;
}
#page-dashboard .status-movie-status{
  margin-top:auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:6px;
  position:relative;
}

#page-dashboard .status-movie-retry{
  position:absolute;
  left:50%;
  transform:translateX(-50%);
  border:1px solid #9fb8d2;
  border-radius:6px;
  background:#eef6ff;
  color:#315b83;
  padding:4px 9px;
  font-size:11px;
  font-weight:700;
  white-space:nowrap;
  cursor:pointer;
}

#page-dashboard .status-movie-retry:hover{
  background:#e2f0ff;
}

#page-dashboard .status-movie-retry:disabled{
  opacity:.6;
  cursor:default;
}
#page-dashboard .status-movie-badge{
  display:inline-flex;
  align-items:center;
  gap:4px;
  padding:4px 7px;
  border-radius:999px;
  font-size:11px;
  font-weight:800;
  white-space:nowrap;
  position:relative;
  cursor:help;
}
#page-dashboard .status-movie-tooltip-text{
  position:absolute;
  left:0;
  bottom:calc(100% + 8px);
  z-index:100;
  width:max-content;
  max-width:280px;
  padding:8px 10px;
  border-radius:7px;
  background:#2d2d32;
  color:#fff;
  font-size:12px;
  line-height:1.45;
  font-weight:500;
  white-space:normal;
  text-align:left;
  box-shadow:0 4px 14px rgba(0,0,0,.22);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:translateY(3px);
  transition:opacity .12s ease,transform .12s ease;
}
#page-dashboard .status-movie-tooltip-text::after{
  content:"";
  position:absolute;
  left:14px;
  top:100%;
  border:5px solid transparent;
  border-top-color:#2d2d32;
}
#page-dashboard .status-movie-tooltip:hover .status-movie-tooltip-text,
#page-dashboard .status-movie-tooltip:focus-visible .status-movie-tooltip-text{
  opacity:1;
  visibility:visible;
  transform:translateY(0);
}
#page-dashboard .status-movie-downloaded .status-movie-actress,
#page-dashboard .status-movie-downloaded .status-movie-code,
#page-dashboard .status-movie-downloaded .status-movie-title{color:#315d42;}
#page-dashboard .status-movie-downloaded .status-movie-badge{background:#d9f1e2;color:#25814e;}
#page-dashboard .status-movie-waiting .status-movie-actress,
#page-dashboard .status-movie-waiting .status-movie-code,
#page-dashboard .status-movie-waiting .status-movie-title{color:#8a5a24;}
#page-dashboard .status-movie-waiting .status-movie-badge{background:#ffe2bd;color:#c46b0d;}
#page-dashboard .status-movie-exception .status-movie-actress,
#page-dashboard .status-movie-exception .status-movie-code,
#page-dashboard .status-movie-exception .status-movie-title{color:#5b6068;}
#page-dashboard .status-movie-exception .status-movie-badge{background:#dedfe2;color:#5b6068;}
#page-dashboard .status-movie-delete{
  border:1px solid #c7c9cd;
  border-radius:6px;
  background:#fff;
  color:#5b6068;
  padding:4px 7px;
  font-size:11px;
  cursor:pointer;
}
#page-dashboard .status-movie-delete:hover{background:#f5f5f6;}

#page-dashboard .downloaded-movie-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
}
#page-dashboard .downloaded-movie-card{
  display:grid;
  grid-template-columns:140px minmax(0,1fr);
  gap:12px;
  min-width:0;
  min-height:220px;
  padding:10px;
  background:linear-gradient(135deg,#f7fff9 0%,#e7f8ed 100%);
  border:1px solid #a9dbbd;
  border-radius:10px;
  box-shadow:0 3px 12px rgba(46,155,95,.08);
}
#page-dashboard .downloaded-movie-card:hover{
  border-color:#68bd8d;
  box-shadow:0 5px 16px rgba(46,155,95,.13);
}
#page-dashboard .downloaded-movie-image{
  width:140px;
  height:200px;
  aspect-ratio:147 / 200;
  border-radius:8px;
  overflow:hidden;
  background:#dff2e6;
  display:flex;
  align-items:center;
  justify-content:center;
  color:#668474;
  font-size:11px;
  text-align:center;
}
#page-dashboard .downloaded-movie-image img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
#page-dashboard .downloaded-movie-content{
  min-width:0;
  min-height:220px;
  display:flex;
  flex-direction:column;
}
#page-dashboard .downloaded-movie-actress{
  color:#2d7047;
  font-size:15px;
  font-weight:850;
  margin-bottom:4px;
  text-align:center;
  overflow:hidden;
  white-space:nowrap;
  text-overflow:ellipsis;
}
#page-dashboard .downloaded-movie-code{
  color:#4d8060;
  font-size:12px;
  font-weight:600;
  margin-bottom:5px;
  text-align:center;
}
#page-dashboard .downloaded-movie-title{
  color:#315d42;
  font-size:13px;
  line-height:1.42;
  font-weight:700;
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:4;
  line-clamp:4;
  overflow:hidden;
  word-break:keep-all;
  overflow-wrap:anywhere;
  text-align:left;
}
#page-dashboard .downloaded-movie-status{
  margin-top:auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:6px;
}
#page-dashboard .downloaded-movie-badge{
  display:inline-flex;
  align-items:center;
  gap:4px;
  padding:4px 7px;
  border-radius:999px;
  background:#d9f1e2;
  color:#25814e;
  font-size:11px;
  font-weight:800;
  white-space:nowrap;
}
#page-dashboard .downloaded-movie-delete{
  border:1px solid #a9dbbd;
  border-radius:6px;
  background:#fff;
  color:#39704d;
  padding:4px 7px;
  font-size:11px;
  cursor:pointer;
}
#page-dashboard .downloaded-movie-delete:hover{
  background:#f0faf4;
}
#page-dashboard .downloaded-movie-image.dmm-cover-clickable{
  cursor:pointer;
  position:relative;
}
#page-dashboard .downloaded-movie-image.dmm-cover-clickable::after{
  content:"";
  position:absolute;
  inset:0;
  background:rgba(0,0,0,0);
  transition:background .15s ease;
  pointer-events:none;
}
#page-dashboard .downloaded-movie-image.dmm-cover-clickable:hover::after{
  background:rgba(0,0,0,.08);
}

#page-dashboard .new-movie-card:hover{
  border-color:var(--theme-card-hover-border);
  box-shadow:0 5px 16px rgba(229,47,109,.13);
}
#page-dashboard .new-movie-image{
  width:140px;
  height:200px;
  aspect-ratio:147 / 200;
  border-radius:8px;
  overflow:hidden;
  background:var(--theme-image-bg);
  display:flex;
  align-items:center;
  justify-content:center;
  color:var(--theme-muted-soft);
  font-size:11px;
  text-align:center;
}
#page-dashboard .new-movie-image img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
#page-dashboard .new-movie-image.dmm-cover-clickable{
  cursor:pointer;
  position:relative;
}
#page-dashboard .new-movie-image.dmm-cover-clickable::after{
  content:"";
  position:absolute;
  inset:0;
  background:rgba(0,0,0,0);
  transition:background .15s ease;
  pointer-events:none;
}
#page-dashboard .new-movie-image.dmm-cover-clickable:hover::after{
  background:rgba(0,0,0,.08);
}
#page-dashboard .new-movie-image.dmm-cover-clickable:focus-visible{
  outline:2px solid var(--theme-main-dark);
  outline-offset:2px;
}
#page-dashboard .new-movie-content{
  min-width:0;
  height:200px; min-height:200px;
  display:flex;
  flex-direction:column;
}
#page-dashboard .new-movie-actress{
  color:var(--theme-link-text);
  font-size:15px;
  font-weight:800;
  line-height:1.3;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  text-align:center;
}
#page-dashboard .new-movie-code-date-row{
  margin-top:5px;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:8px;
  align-items:center;
  min-width:0;
}
#page-dashboard .new-movie-code{
  margin-top:0;
  color:var(--theme-main-dark);
  font-size:12px;
  font-weight:600;
  letter-spacing:.25px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  text-align:left;
}
#page-dashboard .new-movie-release-date{
  min-width:0;
  color:var(--theme-muted);
  font-size:11px;
  font-weight:600;
  letter-spacing:.05px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  text-align:right;
}
#page-dashboard .new-movie-title{
  margin-top:8px;
  color:var(--theme-text);
  font-size:13px;
  font-weight:700;
  line-height:1.45;
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:4;
  overflow:hidden;
  word-break:keep-all;
}
#page-dashboard .new-movie-actions{
  display:flex;
  gap:6px;
  margin-top:auto;
  padding-top:7px;
}
#page-dashboard .new-movie-actions button{
  flex:1 1 0;
  min-width:0;
  height:27px;
  padding:3px 6px;
  font-size:10px;
  border-radius:6px;
  white-space:nowrap;
}
#page-dashboard .new-movie-actions .new-movie-retry{
  background:var(--theme-tint-e);
  border-color:var(--theme-accent-soft);
  color:var(--theme-link-text);
}
#page-dashboard .new-movie-actions .new-movie-delete{
  background:#fff0f3;
  border-color:#f2a2b5;
  color:#d94c68;
}
#page-dashboard .new-movie-more-wrap{
  display:flex;
  justify-content:center;
  padding:0 14px 14px;
  background:transparent;
}
#page-dashboard .new-movie-more-button{
  min-width:110px;
  background:var(--theme-tint-a);
  border-color:var(--theme-accent);
  color:var(--theme-link-text);
}
#page-dashboard .new-movie-more-button:hover{
  background:var(--theme-hover-bg-2);
  border-color:var(--theme-card-hover-border);
}
@media(max-width:1200px){
  #page-dashboard .new-movie-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media(max-width:700px){
  #page-dashboard .new-movie-grid{
    grid-template-columns:1fr;
  }
  #page-dashboard .new-movie-card{
    grid-template-columns:105px minmax(0,1fr);
  }
  #page-dashboard .new-movie-image{
    width:105px;
    height:143px;
    aspect-ratio:147 / 200;
  }
  #page-dashboard .status-movie-grid{
    grid-template-columns:1fr;
  }
  #page-dashboard .status-movie-card{
    grid-template-columns:105px minmax(0,1fr);
    min-height:143px;
  }
  #page-dashboard .status-movie-image{
    width:105px;
    height:143px;
    aspect-ratio:147 / 200;
  }
  #page-dashboard .status-movie-content{
    min-height:143px;
  }
  #page-dashboard .downloaded-movie-card{
    grid-template-columns:105px minmax(0,1fr);
    min-height:143px;
  }
  #page-dashboard .downloaded-movie-image{
    width:105px;
    height:143px;
    aspect-ratio:147 / 200;
  }
  #page-dashboard .downloaded-movie-content{
    min-height:143px;
  }
  #page-dashboard .new-movie-card{
    min-height:143px;
  }
  #page-dashboard .new-movie-content{
    min-height:143px;
  }
}

::selection{background:var(--theme-accent);color:#fff}
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-track{background:var(--theme-bg-mid)}
::-webkit-scrollbar-thumb{background:var(--theme-accent);border-radius:10px;border:2px solid var(--theme-bg-mid)}
::-webkit-scrollbar-thumb:hover{background:var(--theme-accent-strong)}


        /* 상단 메뉴를 Angels Library 제목 오른쪽으로 배치 */
        .header {
            display: flex;
            align-items: center;
            gap: 28px;
            margin-bottom: 16px;
        }

        .header-brand {
            flex: 0 0 auto;
            min-width: 225px;
        }

        .header .top-menu {
            position: absolute;
            left: 50%;
            transform: translateX(-50%);
            display: flex;
            align-items: center;
            justify-content: center;
            gap: 10px;
            margin: 0;
            min-height: 48px;
            white-space: nowrap;
        }

        .header .top-menu-button {
            min-width: 0;
            white-space: nowrap;
        }

        .header-actions {
            margin-left: auto;
            flex: 0 0 auto;
        }

        @media (max-width: 1100px) {
            .header {
                flex-wrap: wrap;
                gap: 14px;
            }

            .header-brand {
                min-width: 0;
            }

            .header .top-menu {
                position: static;
                left: auto;
                transform: none;
                order: 3;
                flex-basis: 100%;
                justify-content: center;
                overflow-x: auto;
            }

            .header-actions {
                margin-left: auto;
            }
        }

        @media (max-width: 600px) {
            .header {
                display: block;
            }

            .header .top-menu {
                position: static;
                left: auto;
                transform: none;
                margin-top: 12px;
                justify-content: flex-start;
                overflow-x: auto;
            }

            .header-actions {
                margin-top: 10px;
            }
        }


        /* 대시보드 작품 행: 배우 카드의 두 가지 핑크 톤을 번갈아 적용 */
        /* 요청에 따라 연한 핑크 배경 레이어 제거 (section-body 자체는 투명 처리) */
        #page-dashboard .section-body {
            background: transparent;
            padding: 0 10px;
        }

        #page-dashboard .section-body > .movie {
            margin: 0;
            padding: 16px 14px;
            border-bottom: 1px solid #ffc5da;
            border-radius: 8px;
            transition: background .15s ease;
        }

        #page-dashboard .section-body > .movie:nth-child(odd) {
            background: var(--theme-tint-b);
        }

        #page-dashboard .section-body > .movie:nth-child(even) {
            background: var(--theme-tint-a);
        }

        #page-dashboard .section-body > .movie:hover {
            background: var(--theme-hover-bg-2);
        }

        #page-dashboard .section-body > .movie:last-child {
            border-bottom: none;
        }

        /* 작품 행 안의 진행바도 배우 카드 내부 버튼과 어울리도록 조금 더 부드럽게 */
        #page-dashboard .progress-bar {
            background: #ffc9dd;
        }

        #page-dashboard .progress {
            background: linear-gradient(90deg, var(--theme-active-a), var(--theme-card-hover-border));
        }

        /* 작품 행의 버튼은 흰색 일변도 대신 연한 핑크 계열 */
        #page-dashboard .movie-actions button {
            background: var(--theme-tint-a);
            border-color: var(--theme-card-border);
            color: #d93670;
        }

        #page-dashboard .movie-actions button:hover {
            background: var(--theme-tint-d);
            border-color: var(--theme-card-hover-border);
        }

        #page-dashboard .movie-actions .dashboard-delete-action {
            background: #fff0f3;
            border-color: #f2a2b5;
            color: #d94c68;
        }

        #page-dashboard .movie-actions .dashboard-delete-action:hover {
            background: #ffe0e7;
        }


        /* 대시보드 작품 목록 오른쪽 작업 버튼 */
        #page-dashboard .manual-actions {
            width: 100%;
            align-items: flex-end;
        }

        #page-dashboard .manual-actions button {
            width: 100%;
            min-width: 0;
        }

        #page-dashboard .movie-actions > .dashboard-delete-action {
            width: 60%;
            min-width: 0;
            margin-left: auto;
        }

        #page-dashboard .actress-name-line {
            line-height: 1.4;
        }

        #page-dashboard .movie-info .movie-code {
            margin-top: 6px;
            font-size: 12px;
            font-weight: 600;
            letter-spacing: .3px;
            color: var(--theme-main-dark);
        }

        /* 모든 대시보드 작품 행의 열 비율을 통일
           배우 이름 : 상태 : 제목 : 작업 = 0.9 : 0.6 : 3.9 : 0.6
           배우 이름 영역은 기존 다운로드 행 대비 1.5배로 확대하고
           줄어든 공간은 제목 영역에서 조정한다. */
        #page-dashboard .movie {
            grid-template-columns: 0.9fr 0.6fr 3.9fr 0.6fr;
            column-gap: 16px;
        }

        /* 제목 영역과 삭제 버튼 사이에도 동일한 여백을 유지 */
        #page-dashboard .movie-title {
            min-width: 0;
            padding-right: 16px;
        }

        /* 다운로드중 / 다운로드 완료 삭제 버튼은 항상 오른쪽 정렬 */
        #page-dashboard .movie-downloading .movie-actions,
        #page-dashboard .movie-downloaded .movie-actions {
            display: flex;
            align-items: center;
            justify-content: flex-end;
            width: 100%;
        }

        #page-dashboard .movie-downloading .dashboard-delete-action,
        #page-dashboard .movie-downloaded .dashboard-delete-action {
            width: 100%;
            min-width: 72px;
            margin-left: auto;
        }

        /* 다운로드중에는 상태 배지 아래 추가 요소를 표시하지 않음 */
        #page-dashboard .movie-downloading .status-cell {
            gap: 0;
        }


        /* ============================================================
           Telegram Settings
           ============================================================ */
        .telegram-settings-panel{
            display:grid;
            grid-template-columns:repeat(4,minmax(0,1fr));
            gap:10px;
            margin-bottom:18px;
        }
        .telegram-setting-card{
            min-width:0;
            padding:14px 16px;
            background:rgba(255,248,252,.94);
            border:1px solid var(--theme-border);
            border-radius:12px;
            box-shadow:0 4px 18px rgba(229,47,109,.08);
        }
        .telegram-setting-title{
            color:var(--theme-main-dark);
            font-size:13px;
            font-weight:800;
            margin-bottom:12px;
        }
        .telegram-setting-row{
            display:flex;
            align-items:center;
            justify-content:space-between;
            gap:10px;
            min-height:34px;
            color:var(--theme-label-muted);
            font-size:11px;
            border-bottom:1px solid #ffdce8;
        }
        .telegram-setting-row:last-of-type{border-bottom:none}
        .telegram-setting-row select,
        .telegram-setting-row input[type="time"]{
            width:110px;
            height:32px;
            padding:5px 8px;
            border:1px solid var(--theme-border);
            border-radius:6px;
            background:#fff;
            color:var(--theme-text);
            font-size:11px;
            outline:none;
        }
        .telegram-setting-help,
        .telegram-setting-message{
            margin-top:8px;
            color:var(--theme-muted);
            font-size:10px;
            line-height:1.45;
        }
        .telegram-status-dot{
            display:inline-flex;
            align-items:center;
            gap:6px;
            font-size:13px;
            font-weight:700;
        }
        .telegram-status-dot::before{
            content:"";
            width:9px;
            height:9px;
            border-radius:50%;
            background:#c7b9c1;
        }
        .telegram-status-dot.connected::before{background:#35b86f}
        .telegram-status-dot.disconnected::before{background:#e25b72}
        .telegram-status-dot.pending::before{background:#f1b44c}
        .telegram-test-button,
        .telegram-save-button{
            width:100%;
            margin-top:10px;
            background:linear-gradient(135deg,var(--theme-active-a),var(--theme-active-b));
            border-color:var(--theme-active-a);
            color:#fff;
        }
        .telegram-test-button:hover,
        .telegram-save-button:hover{
            background:linear-gradient(135deg,var(--theme-active-b),var(--theme-active-c));
            color:#fff;
        }
        .telegram-switch{
            position:relative;
            display:inline-flex;
            width:42px;
            height:22px;
            flex:0 0 auto;
        }
        .telegram-switch input{opacity:0;width:0;height:0}
        .telegram-switch span{
            position:absolute;
            inset:0;
            border-radius:20px;
            background:#e8dbe1;
            cursor:pointer;
            transition:.15s ease;
        }
        .telegram-switch span::after{
            content:"";
            position:absolute;
            width:18px;
            height:18px;
            left:2px;
            top:2px;
            border-radius:50%;
            background:#fff;
            box-shadow:0 1px 4px rgba(0,0,0,.15);
            transition:.15s ease;
        }
        .telegram-switch input:checked + span{background:var(--theme-main)}
        .telegram-switch input:checked + span::after{transform:translateX(20px)}
        .telegram-check-row{
            display:flex;
            align-items:center;
            gap:7px;
            min-height:29px;
            color:var(--theme-label-muted);
            font-size:11px;
        }
        .telegram-check-row-inline{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-top:4px;}
        .telegram-check-row-inline .telegram-check-row{margin:0;white-space:nowrap;}
        .telegram-manual-message-wrap{margin-top:10px;}
        .telegram-manual-textarea{width:100%;min-height:86px;margin-top:7px;padding:9px 10px;border:1px solid #f1bfd0;border-radius:9px;background:var(--theme-tint-c);color:var(--theme-label-muted);font-size:11px;line-height:1.5;resize:vertical;box-sizing:border-box;}
        .telegram-manual-textarea:disabled{opacity:.55;cursor:not-allowed;}
        .telegram-manual-send-button:disabled{opacity:.45;cursor:not-allowed;}
        .telegram-check-row input{accent-color:var(--theme-main)}
        .telegram-setting-actions{margin-top:5px}
        .telegram-list-toolbar{
            display:flex;
            align-items:center;
            justify-content:space-between;
            gap:12px;
            margin:0 0 10px;
            padding:12px 14px;
            background:rgba(255,239,247,.94);
            border:1px solid var(--theme-card-border);
            border-radius:10px;
        }
        .telegram-list-toolbar strong{
            color:var(--theme-main-dark);
            font-size:13px;
        }
        .telegram-list-toolbar span{
            margin-left:8px;
            color:var(--theme-muted);
            font-size:10px;
        }
        .telegram-actress-card{
            background:linear-gradient(180deg,#fff0f7 0%,#ffcfe2 100%);
            border-color:var(--theme-accent);
        }
        .telegram-actress-card:hover{
            border-color:var(--theme-accent-strong);
            box-shadow:0 7px 20px rgba(229,47,109,.16);
        }
        .telegram-auto-button{
            width:100%;
            margin-bottom:6px;
            background:var(--theme-tint-e);
            border-color:var(--theme-accent-soft);
            color:var(--theme-link-text);
            font-weight:700;
        }
        .telegram-auto-button.enabled{
            background:#ffe0ed;
            border-color:var(--theme-accent-strong);
            color:var(--theme-link-text);
        }
        .telegram-manual-button{
            width:100%;
            margin-bottom:6px;
            background:var(--theme-tint-f);
            border-color:var(--theme-accent);
            color:var(--theme-link-text);
            font-weight:700;
        }
        .telegram-manual-button:hover{background:var(--theme-tint-d)}
        .telegram-actress-card .actress-card-row{margin-bottom:6px}
        .telegram-group-header{
            background:rgba(255,229,240,.96);
        }
        @media(max-width:1100px){
            .telegram-settings-panel{grid-template-columns:repeat(2,minmax(0,1fr))}
        }
        @media(max-width:700px){
            .telegram-settings-panel{grid-template-columns:1fr}
            .telegram-list-toolbar{align-items:flex-start;flex-direction:column}
        }


        .telegram-message-combined-card {
            position: relative;
        }

        .telegram-message-header {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 12px;
        }

        .telegram-message-header .telegram-setting-title {
            margin: 0;
        }

        .telegram-message-options {
            display: flex;
            align-items: center;
            flex-wrap: wrap;
            gap: 18px;
            margin-top: 12px;
        }

        .telegram-message-options .telegram-check-row {
            margin: 0;
            white-space: nowrap;
        }

        .telegram-manual-message-row {
            display: flex;
            align-items: stretch;
            gap: 10px;
            margin-top: 14px;
            min-height: 72px;
        }

        .telegram-manual-message-row .telegram-manual-textarea {
            flex: 1;
            height: 72px;
            min-height: 72px;
            max-height: 72px;
            box-sizing: border-box;
        }

        .telegram-manual-message-row .telegram-manual-send-button {
            width: 128px;
            min-width: 128px;
            height: 72px;
            min-height: 72px;
            margin: 0;
        }

        @media (max-width: 720px) {
            .telegram-message-header {
                align-items: flex-start;
            }

            .telegram-manual-message-row {
                flex-direction: column;
            }

            .telegram-manual-message-row .telegram-manual-send-button {
                width: 100%;
                min-width: 0;
            }
        }


        /* ============================================================
           Telegram 메시지 설정 - 컴팩트 레이아웃
           모든 요소가 한 카드 안에서 끝나도록 높이를 최소화
           ============================================================ */
        .telegram-message-combined-card {
            padding: 10px 12px !important;
        }

        .telegram-message-header {
            height: 28px !important;
            min-height: 28px !important;
            gap: 8px !important;
        }

        .telegram-message-header .telegram-setting-title {
            margin: 0 !important;
            font-size: 13px !important;
            line-height: 28px !important;
            white-space: nowrap !important;
        }

        .telegram-message-header .telegram-save-button {
            width: 72px !important;
            min-width: 72px !important;
            max-width: 72px !important;
            height: 28px !important;
            min-height: 28px !important;
            margin: 0 0 0 auto !important;
            padding: 0 !important;
            flex: 0 0 72px !important;
        }

        .telegram-message-options {
            display: flex !important;
            align-items: center !important;
            flex-wrap: nowrap !important;
            gap: 12px !important;
            height: 26px !important;
            min-height: 26px !important;
            margin-top: 5px !important;
            overflow: visible !important;
        }

        .telegram-message-options .telegram-check-row {
            height: 26px !important;
            min-height: 26px !important;
            margin: 0 !important;
            white-space: nowrap !important;
        }

        .telegram-manual-message-row {
            display: flex !important;
            align-items: stretch !important;
            gap: 8px !important;
            height: 72px !important;
            min-height: 72px !important;
            margin-top: 10px !important;
        }

        .telegram-manual-message-row .telegram-manual-textarea {
            flex: 1 1 auto !important;
            width: auto !important;
            height: 68px !important;
            min-height: 68px !important;
            max-height: 68px !important;
            margin: 0 !important;
            padding: 6px 9px !important;
            line-height: 20px !important;
            resize: none !important;
            box-sizing: border-box !important;
        }

        .telegram-manual-message-row .telegram-manual-send-button {
            width: 72px !important;
            min-width: 72px !important;
            max-width: 72px !important;
            height: 68px !important;
            min-height: 68px !important;
            margin: 0 !important;
            padding: 0 !important;
            flex: 0 0 72px !important;
            align-self: center !important;
        }

        .telegram-message-combined-card .telegram-setting-message {
            min-height: 0 !important;
            margin-top: 2px !important;
            line-height: 1.2 !important;
        }

        @media (max-width: 720px) {
            .telegram-message-header {
                height: 28px !important;
                min-height: 28px !important;
                align-items: center !important;
            }

            .telegram-message-options {
                overflow-x: auto !important;
                gap: 9px !important;
            }

            .telegram-manual-message-row {
                flex-direction: row !important;
                height: 72px !important;
                min-height: 72px !important;
            }

            .telegram-manual-message-row .telegram-manual-textarea {
                width: auto !important;
                min-height: 68px !important;
            }

            .telegram-manual-message-row .telegram-manual-send-button {
                width: 72px !important;
                min-width: 72px !important;
            }
        }



/* Manual 작품 연결 - 배우 카드형 */
.manual-link-panel{
  padding:16px;
  background:rgba(255,248,252,.88);
  border:1px solid #f1c6d8;
  border-radius:12px;
  box-shadow:0 4px 18px rgba(229,47,109,.07);
}
.manual-link-search-row{display:flex;gap:10px;align-items:center}
.manual-link-search-row input{flex:1;min-width:0;height:40px;padding:8px 12px;border:1px solid #e0b8ca;border-radius:8px;outline:none;background:#fff;color:#40353b}
.manual-link-search-row input:focus{border-color:#ff8fb7;box-shadow:0 0 0 3px rgba(255,143,183,.12)}
.manual-link-search-button,.manual-link-reset-button{height:40px;padding:0 18px;border-radius:8px;cursor:pointer;font-weight:700;white-space:nowrap}
.manual-link-search-button{background:var(--theme-hover-bg);border:1px solid var(--theme-accent);color:var(--theme-link-text)}
.manual-link-search-button:hover{background:#ffe2ee}
.manual-link-reset-button{background:#ffd1e1;border:1px solid #f38db2;color:#b81f59}
.manual-link-reset-button:hover{background:#ffc1d6}
.manual-link-reset-button{background:#fff;border:1px solid #d9c8d0;color:#7b6871}
.manual-link-reset-button:hover{background:#faf4f7}
.manual-link-search-button:disabled,.manual-link-reset-button:disabled{opacity:.55;cursor:default}
.manual-link-help{margin-top:8px;color:#8b6f7d;font-size:11px}
.manual-link-results{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:14px}
.manual-link-card{display:grid;grid-template-columns:140px minmax(0,1fr);gap:12px;min-width:0;min-height:220px;padding:10px;background:linear-gradient(135deg,var(--theme-tint-c) 0%,var(--theme-tint-d) 100%);border:1px solid var(--theme-card-border);border-radius:10px;box-shadow:0 3px 12px rgba(229,47,109,.08);transition:border-color .12s ease,box-shadow .12s ease}
.manual-link-card:hover{border-color:var(--theme-card-hover-border);box-shadow:0 5px 16px rgba(229,47,109,.13)}
.manual-link-image{width:140px;height:200px;aspect-ratio:140 / 200;border-radius:8px;display:flex;align-items:center;justify-content:center;background:var(--theme-image-bg);color:var(--theme-muted-soft);font-size:11px;overflow:hidden}
.manual-link-image img{width:100%;height:100%;object-fit:cover;display:block}
.manual-link-image.dmm-cover-clickable{cursor:pointer;position:relative}
.manual-link-image.dmm-cover-clickable::after{content:'↗ 크게 보기';position:absolute;inset:0;background:rgba(0,0,0,0);transition:background .15s ease;display:flex;align-items:flex-end;justify-content:center;padding-bottom:8px;color:#fff;font-size:10px;line-height:1.1;pointer-events:none;opacity:0}
.manual-link-image.dmm-cover-clickable:hover::after,.manual-link-image.dmm-cover-clickable:focus-visible::after{opacity:1;background:rgba(0,0,0,.12)}
.manual-link-card-body{min-width:0;min-height:220px;display:flex;flex-direction:column}
.manual-link-card-actress{color:#c34b7a;font-size:15px;font-weight:850;margin-bottom:4px;text-align:center;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.manual-link-card-code{color:#d35a87;font-size:12px;font-weight:600;margin-bottom:5px;text-align:center;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.manual-link-card-title{color:#7f4f62;font-size:13px;line-height:1.42;font-weight:700;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4;line-clamp:4;overflow:hidden;word-break:keep-all;overflow-wrap:anywhere}
.manual-link-card-actions{margin-top:auto;display:grid;grid-template-columns:1fr 1fr;gap:6px;align-items:center}
.manual-link-status{width:100%;border:1px solid #b7c9e6;border-radius:6px;background:#f1f6ff;color:#3567a8;padding:4px 7px;font-size:10px;font-weight:700;cursor:default;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.manual-link-status.status-downloading{border-color:#a9c6f3;background:#edf5ff;color:#2462bf}
.manual-link-tooltip{position:relative;cursor:help;overflow:visible !important;}
.manual-link-tooltip-text{position:absolute;left:50%;bottom:calc(100% + 8px);transform:translateX(-50%) translateY(3px);z-index:300;width:max-content;max-width:240px;padding:7px 9px;border-radius:7px;background:#2d2d32;color:#fff;font-size:11px;font-weight:500;line-height:1.4;white-space:normal;text-align:left;box-shadow:0 4px 14px rgba(0,0,0,.22);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .12s ease,transform .12s ease;}
.manual-link-tooltip-text::after{content:"";position:absolute;left:50%;top:100%;margin-left:-5px;border:5px solid transparent;border-top-color:#2d2d32;}
.manual-link-tooltip:hover .manual-link-tooltip-text,.manual-link-tooltip:focus-visible .manual-link-tooltip-text{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0);}

.manual-link-status.status-uploading{border-color:#b8d9c5;background:#eef9f1;color:#2c7a4d}
.manual-link-status.status-waiting{border-color:#f1c18e;background:#fff7ed;color:#d97716}
.manual-link-status.status-checking{border-color:#c9b9e6;background:#f6f1ff;color:#684897}
.manual-link-status.status-paused{border-color:#d9c8d0;background:#faf6f8;color:#7b6871}
.manual-link-status.status-error{border-color:#efb3b3;background:#fff1f1;color:#c24141}
.manual-link-connect{width:100%;border:1px solid var(--theme-accent);border-radius:6px;background:var(--theme-tint-a);color:#d93670;padding:4px 9px;font-size:11px;font-weight:700;cursor:pointer}
.manual-link-connect:hover{background:var(--theme-tint-d);border-color:var(--theme-card-hover-border)}
.manual-link-connect:disabled{opacity:.65;cursor:default;background:#f8eef3;color:#a77b8f}
.manual-link-empty{grid-column:1/-1;padding:30px 10px;text-align:center;color:#9a7d8b;font-size:12px}
@media(max-width:1100px){.manual-link-results{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:820px){.manual-link-results{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.manual-link-search-row{flex-direction:column;align-items:stretch}.manual-link-search-button,.manual-link-reset-button{width:100%}.manual-link-results{grid-template-columns:1fr}.manual-link-card{grid-template-columns:120px minmax(0,1fr)}}

.manual-download-overlay{position:fixed;inset:0;background:rgba(25,18,24,.58);display:none;align-items:center;justify-content:center;padding:24px;z-index:3000}
.manual-download-overlay.show{display:flex}
.manual-download-modal{width:min(1100px,96vw);max-height:88vh;background:#fff8fc;border:1px solid var(--theme-border);border-radius:14px;box-shadow:0 18px 60px rgba(55,25,45,.25);display:flex;flex-direction:column;overflow:hidden}
.manual-download-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 18px;border-bottom:1px solid #f1c6d8}
.manual-download-title{font-size:17px;font-weight:800;color:#8d3158}
.manual-download-subtitle{font-size:11px;color:#8b6f7d;margin-top:4px}
.manual-download-close{background:transparent;border:0;color:#9d7484;font-size:24px;padding:0 6px;cursor:pointer}
.manual-download-body{padding:16px 18px 18px;overflow:auto}
.manual-download-status{font-size:12px;color:#7d6270;margin-bottom:12px}
.manual-download-list{display:flex;flex-direction:column;gap:10px}
.manual-download-item{background:#fff;border:1px solid #f0d2df;border-radius:10px;padding:12px}
.manual-download-item-title{font-size:13px;font-weight:700;color:#44363e;line-height:1.5;word-break:keep-all}
.manual-download-item-meta{display:flex;flex-wrap:wrap;gap:8px 14px;margin-top:6px;font-size:10px;color:#88727d}
.manual-download-item-actions{display:flex;justify-content:flex-end;gap:7px;margin-top:10px}
.manual-download-item-actions button{font-size:11px;padding:6px 10px}
.manual-download-register{background:var(--theme-hover-bg);border-color:var(--theme-accent);color:var(--theme-link-text)}
.manual-download-register-button{background:#fff5fa;border-color:var(--theme-accent-soft);color:var(--theme-link-text)}
.manual-download-register-button:hover{background:#ffe2ee}
.manual-download-register:hover{background:#ffe0ec}
.manual-download-register:disabled{opacity:.55;cursor:default}
.manual-download-open{background:#fff;border-color:#d9b6c7;color:#87566e}
.manual-download-empty{padding:28px 10px;text-align:center;color:#9a7d8b;font-size:12px}


/* 대기 리스트 작품 카드 버튼 강제 하단 정렬 */
#page-dashboard .status-movie-card{
    position:relative;
}
#page-dashboard .status-movie-content{
    height:200px !important;
    min-height:200px !important;
    position:relative;
}
#page-dashboard .status-movie-status{
    position:absolute !important;
    left:0;
    right:0;
    bottom:0;
    margin-top:0 !important;
    align-items:flex-end !important;
}


/* 대기 리스트 작품 제목 표시 5줄 확장 */
.status-movie-title,
.status-movie-title-ko,
.movielist-title-ko {
    -webkit-line-clamp: 5 !important;
    max-height: 7.5em !important;
    overflow: hidden;
}


/* 실제 대기 리스트 제목 영역 5줄 사용 */
#page-dashboard .status-movie-title{
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:5 !important;
  line-clamp:5 !important;
  max-height:none !important;
  height:auto !important;
  flex:1 1 auto;
  overflow:hidden;
}
#page-dashboard .status-movie-content{
  height:200px;
}

/* 작품관리 전체 카드 통일 - 대기 리스트 기준 */
#page-dashboard .unified-status-movie-grid .status-movie-card.status-movie-new,
#page-dashboard .unified-status-movie-grid .status-movie-card.status-movie-downloading,
#page-dashboard .unified-status-movie-grid .status-movie-card.status-movie-downloaded,
#page-dashboard .unified-status-movie-grid .status-movie-card.status-movie-waiting,
#page-dashboard .unified-status-movie-grid .status-movie-card.status-movie-exception {
    background: linear-gradient(135deg,#fffaf4 0%,#fff0dc 100%);
    border-color:#f1c18e;
}

#page-dashboard .unified-status-movie-grid .status-movie-actress,
#page-dashboard .unified-status-movie-grid .status-movie-code,
#page-dashboard .unified-status-movie-grid .status-movie-title-ko,
#page-dashboard .unified-status-movie-grid .status-movie-title {
    color:#8a5a24;
}

#page-dashboard .unified-status-movie-grid .status-movie-badge {
    background:#ffe2bd;
    color:#c46b0d;
    border-color:#f1c18e;
}

#page-dashboard .unified-status-movie-grid .status-movie-content {
    height:183px;
    max-height:183px;
}

#page-dashboard .unified-status-movie-grid .status-movie-title-ko {
    -webkit-line-clamp:5;
    line-clamp:5;
}


/* 작품관리 카드 전체 통일 - 대기 리스트 기준 */
.movielist-row:nth-child(odd),
.movielist-row:nth-child(even) {
    background: var(--theme-tint-b);
}

/* 연한 핑크 단계 제거, 카드 hover만 유지 */
.movielist-row:hover {
    background: var(--theme-hover-bg-2);
}

/* 모든 작품 카드 제목 영역 기준 유지 */
.movielist-title-ko {
    -webkit-line-clamp: 5;
    display: -webkit-box;
    -webkit-box-orient: vertical;
}

