/* /Pages/ProgrammaProduzione/Disposizione.razor.rz.scp.css */
/* =============================================
   Disposizione — Factory Floor Map (Excel-style)
   ============================================= */

.disp-wrap[b-cperv7cvre] {
    padding: 12px 16px;
    max-width: 1400px;
    margin: 0 auto;
}

/* --- Header --- */
.disp-header[b-cperv7cvre] {
    margin-bottom: 16px;
}

.disp-title-row[b-cperv7cvre] {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 16px;
}

.disp-title[b-cperv7cvre] {
    font-family: 'Fira Sans', sans-serif;
    font-size: 1.15rem;
    font-weight: 700;
    color: #0F172A;
    margin-bottom: 2px;
    letter-spacing: 0.02em;
}

.disp-sub[b-cperv7cvre] {
    font-size: 0.8rem;
    color: #475569;
    font-family: 'Fira Sans', sans-serif;
}

/* --- Factory Floor Layout --- */
.factory-floor[b-cperv7cvre] {
    display: flex;
    gap: 0;
    align-items: flex-start;
}

.floor-col[b-cperv7cvre] {
    display: flex;
    flex-direction: column;
    gap: 6px;
    flex: 1;
    min-width: 0;
}

.floor-aisle[b-cperv7cvre] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 44px;
    min-width: 44px;
    padding: 8px 0;
    align-self: stretch;
}

.aisle-line[b-cperv7cvre] {
    flex: 1;
    width: 2px;
    background: repeating-linear-gradient(
        to bottom,
        #CBD5E1 0px,
        #CBD5E1 6px,
        transparent 6px,
        transparent 12px
    );
}

.aisle-label[b-cperv7cvre] {
    writing-mode: vertical-rl;
    text-orientation: mixed;
    font-size: 0.65rem;
    font-weight: 600;
    color: #94A3B8;
    letter-spacing: 0.15em;
    padding: 8px 0;
    text-transform: uppercase;
}

/* --- Machine Slot --- */
.mach-slot[b-cperv7cvre] {
    cursor: pointer;
    transition: transform 0.1s, box-shadow 0.15s;
}

.mach-slot:hover:not(.mach-spacer)[b-cperv7cvre] {
    transform: translateY(-1px);
    box-shadow: 0 2px 8px rgba(0,0,0,0.1);
    z-index: 2;
    position: relative;
}

.mach-spacer[b-cperv7cvre] {
    height: 0;
    min-height: 0;
    visibility: hidden;
    cursor: default;
}

/* Make spacers same height as real blocks */
.mach-spacer[b-cperv7cvre] {
    height: 94px;
}

/* --- Machine Table (Excel-style) --- */
[b-cperv7cvre] .mach-tbl {
    width: 100%;
    border-collapse: collapse;
    border: 2px solid #334155;
    font-family: 'Fira Sans', sans-serif;
    font-size: 0.72rem;
    background: #fff;
    table-layout: fixed;
}

[b-cperv7cvre] .mach-tbl.mach-inactive {
    opacity: 0.5;
}

[b-cperv7cvre] .mach-tbl.mach-empty {
    border-color: #CBD5E1;
    background: #F8FAFC;
}

[b-cperv7cvre] .mach-tbl td {
    border: 1px solid #CBD5E1;
    padding: 2px 5px;
    vertical-align: middle;
    line-height: 1.3;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Row: order + rend.macchina + OEE */
[b-cperv7cvre] .mach-row-top td {
    border-bottom: 2px solid #334155;
}

[b-cperv7cvre] .mc-order {
    font-size: 0.7rem;
    color: #475569;
}

[b-cperv7cvre] .mc-rendmac {
    text-align: center;
    font-weight: 600;
    font-size: 0.72rem;
    font-family: 'Fira Code', monospace;
}

[b-cperv7cvre] .mc-oee {
    text-align: center;
    font-weight: 700;
    font-family: 'Fira Code', monospace;
    font-size: 0.78rem;
    width: 62px;
    min-width: 62px;
    max-width: 62px;
    border-left: 2px solid #334155 !important;
}

[b-cperv7cvre] .mc-oee small {
    font-size: 0.6rem;
    font-weight: 500;
    opacity: 0.7;
    font-family: 'Fira Sans', sans-serif;
}

[b-cperv7cvre] .mc-oee-empty {
    background: #F1F5F9 !important;
    color: #94A3B8 !important;
    border-left-color: #CBD5E1 !important;
}

/* Row: machine name + KPI headers */
[b-cperv7cvre] .mc-name {
    font-weight: 600;
    color: #0F172A;
    font-size: 0.73rem;
}

[b-cperv7cvre] .mc-name-empty {
    color: #94A3B8;
    font-weight: 500;
}

[b-cperv7cvre] .mc-kpi-h {
    text-align: center;
    font-size: 0.58rem;
    color: #64748B;
    font-weight: 500;
    padding: 1px 2px;
    background: #F8FAFC;
    width: 48px;
}

/* Row: data values */
[b-cperv7cvre] .mc-pz {
    font-family: 'Fira Code', monospace;
    font-size: 0.78rem;
    text-align: right;
    width: 64px;
    color: #0F172A;
}

[b-cperv7cvre] .mc-info {
    font-size: 0.68rem;
    color: #475569;
}

[b-cperv7cvre] .mc-kpi-v {
    text-align: center;
    font-family: 'Fira Code', monospace;
    font-size: 0.72rem;
    font-weight: 500;
    width: 48px;
    color: #0F172A;
}

/* Row: code + rend. produzione */
[b-cperv7cvre] .mc-pz-lbl {
    font-size: 0.58rem;
    color: #94A3B8;
    text-align: right;
    width: 64px;
}

[b-cperv7cvre] .mc-code {
    font-size: 0.68rem;
    color: #475569;
}

[b-cperv7cvre] .mc-code strong {
    color: #0F172A;
    font-family: 'Fira Code', monospace;
    font-size: 0.72rem;
}

[b-cperv7cvre] .mc-rendprod {
    text-align: center;
    font-size: 0.7rem;
    font-family: 'Fira Code', monospace;
    border-top: 2px solid #334155;
}

[b-cperv7cvre] .mc-lbl {
    font-size: 0.6rem;
    color: #94A3B8;
}

/* --- Legend Box --- */
[b-cperv7cvre] .legend-box {
    margin-top: 12px;
    padding: 8px;
    border: 1px solid #CBD5E1;
    border-radius: 4px;
    background: #F8FAFC;
}

[b-cperv7cvre] .legend-title {
    font-size: 0.65rem;
    font-weight: 600;
    color: #64748B;
    margin-bottom: 6px;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

[b-cperv7cvre] .legend-tbl {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.62rem;
    font-family: 'Fira Sans', sans-serif;
    color: #475569;
}

[b-cperv7cvre] .leg-cell {
    border: 1px solid #94A3B8;
    padding: 3px 5px;
    text-align: center;
    background: #fff;
}

[b-cperv7cvre] .leg-hdr {
    font-weight: 600;
    background: #F1F5F9;
}

[b-cperv7cvre] .leg-sm {
    font-size: 0.58rem;
    width: 50px;
}

[b-cperv7cvre] .leg-oee {
    font-weight: 600;
    background: #F1F5F9;
    width: 55px;
    font-size: 0.58rem;
    line-height: 1.3;
}

[b-cperv7cvre] .legend-colors {
    margin-top: 6px;
    font-size: 0.62rem;
    color: #64748B;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 2px;
}

[b-cperv7cvre] .lc-dot {
    display: inline-block;
    width: 10px;
    height: 10px;
    border-radius: 2px;
    vertical-align: middle;
}

/* --- Responsive --- */
@media (max-width: 900px) {
    .factory-floor[b-cperv7cvre] {
        flex-direction: column;
        gap: 16px;
    }

    .floor-aisle[b-cperv7cvre] {
        flex-direction: row;
        width: 100%;
        min-width: 0;
        height: 32px;
        padding: 0 8px;
    }

    .aisle-line[b-cperv7cvre] {
        height: 2px;
        width: auto;
        flex: 1;
        background: repeating-linear-gradient(
            to right,
            #CBD5E1 0px,
            #CBD5E1 6px,
            transparent 6px,
            transparent 12px
        );
    }

    .aisle-label[b-cperv7cvre] {
        writing-mode: horizontal-tb;
        text-orientation: unset;
        padding: 0 8px;
    }

    .mach-spacer[b-cperv7cvre] {
        display: none;
    }
}
/* /Pages/Report.razor.rz.scp.css */
/* =============================================
   Report & Export — Two-Panel Layout
   ============================================= */

.report-page[b-do7ddiv0oy] {
    padding: 24px;
    height: calc(100vh - var(--header-height) - var(--footer-height) - 48px);
    display: flex;
    flex-direction: column;
}

.report-header[b-do7ddiv0oy] {
    margin-bottom: 20px;
}

.report-header h1[b-do7ddiv0oy] {
    font-size: 1.4rem;
    font-weight: 700;
    color: #152C54;
    margin: 0;
}

.report-header .subtitle[b-do7ddiv0oy] {
    color: #64748b;
    font-size: 0.85rem;
    margin-top: 4px;
}

/* Two-column layout */
.report-main-grid[b-do7ddiv0oy] {
    display: grid;
    grid-template-columns: 340px 1fr;
    gap: 20px;
    flex: 1;
    min-height: 0;
}

/* Left Panel — Report types + Schedule */
.report-left-panel[b-do7ddiv0oy] {
    display: flex;
    flex-direction: column;
    gap: 16px;
    overflow-y: auto;
}

.panel-section[b-do7ddiv0oy] {
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    padding: 16px;
}

.panel-section-title[b-do7ddiv0oy] {
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: #94a3b8;
    margin-bottom: 12px;
    padding-bottom: 8px;
    border-bottom: 1px solid #f1f5f9;
}

/* Report type list items */
.report-type-list[b-do7ddiv0oy] {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.report-type-item[b-do7ddiv0oy] {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 12px;
    border-radius: 10px;
    cursor: pointer;
    transition: all 0.15s ease;
    border: 2px solid transparent;
    position: relative;
}

.report-type-item:hover[b-do7ddiv0oy] {
    background: #f8fafc;
}

.report-type-item.active[b-do7ddiv0oy] {
    background: #eff6ff;
    border-color: #2563eb;
}

.report-type-icon[b-do7ddiv0oy] {
    width: 40px;
    height: 40px;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1rem;
    flex-shrink: 0;
}

.report-type-icon.color-energy[b-do7ddiv0oy] { background: #fef3c7; color: #d97706; }
.report-type-icon.color-production[b-do7ddiv0oy] { background: #dbeafe; color: #2563eb; }
.report-type-icon.color-compliance[b-do7ddiv0oy] { background: #dcfce7; color: #16a34a; }
.report-type-icon.color-kpi[b-do7ddiv0oy] { background: #ede9fe; color: #7c3aed; }
.report-type-icon.color-downtime[b-do7ddiv0oy] { background: #fee2e2; color: #dc2626; }
.report-type-icon.color-health[b-do7ddiv0oy] { background: #fce7f3; color: #db2777; }

.report-type-item.active .report-type-icon.color-energy[b-do7ddiv0oy] { background: #d97706; color: #fff; }
.report-type-item.active .report-type-icon.color-production[b-do7ddiv0oy] { background: #2563eb; color: #fff; }
.report-type-item.active .report-type-icon.color-compliance[b-do7ddiv0oy] { background: #16a34a; color: #fff; }
.report-type-item.active .report-type-icon.color-kpi[b-do7ddiv0oy] { background: #7c3aed; color: #fff; }
.report-type-item.active .report-type-icon.color-downtime[b-do7ddiv0oy] { background: #dc2626; color: #fff; }
.report-type-item.active .report-type-icon.color-health[b-do7ddiv0oy] { background: #db2777; color: #fff; }

.report-type-info[b-do7ddiv0oy] {
    display: flex;
    flex-direction: column;
    min-width: 0;
    flex: 1;
}

.report-type-label[b-do7ddiv0oy] {
    font-size: 0.88rem;
    font-weight: 600;
    color: #1e293b;
    line-height: 1.3;
}

.report-type-desc[b-do7ddiv0oy] {
    font-size: 0.75rem;
    color: #94a3b8;
    line-height: 1.3;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.report-type-arrow[b-do7ddiv0oy] {
    font-size: 0.7rem;
    color: #2563eb;
    flex-shrink: 0;
}

/* Schedule section */
.schedule-section[b-do7ddiv0oy] {
    flex-shrink: 0;
}

.schedule-list[b-do7ddiv0oy] {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-bottom: 12px;
}

.schedule-item[b-do7ddiv0oy] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px;
    background: #f8fafc;
    border-radius: 8px;
}

.schedule-badge[b-do7ddiv0oy] {
    width: 32px;
    height: 32px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.8rem;
    flex-shrink: 0;
}

.schedule-badge.weekly[b-do7ddiv0oy] { background: #dbeafe; color: #2563eb; }
.schedule-badge.monthly[b-do7ddiv0oy] { background: #f3e8ff; color: #9333ea; }

.schedule-info[b-do7ddiv0oy] {
    display: flex;
    flex-direction: column;
}

.schedule-info strong[b-do7ddiv0oy] {
    font-size: 0.82rem;
    color: #1e293b;
}

.schedule-info span[b-do7ddiv0oy] {
    font-size: 0.72rem;
    color: #94a3b8;
    line-height: 1.3;
}

.schedule-email[b-do7ddiv0oy] {
    font-size: 0.75rem;
    color: #64748b;
    padding-top: 8px;
    border-top: 1px solid #f1f5f9;
}

/* Right Panel — Config */
.report-right-panel[b-do7ddiv0oy] {
    display: flex;
    flex-direction: column;
    min-height: 0;
}

.report-placeholder[b-do7ddiv0oy] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    height: 100%;
    background: #fff;
    border: 2px dashed #e2e8f0;
    border-radius: 12px;
    color: #94a3b8;
    text-align: center;
    padding: 48px;
}

.placeholder-icon[b-do7ddiv0oy] {
    width: 64px;
    height: 64px;
    border-radius: 50%;
    background: #f1f5f9;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5rem;
    color: #cbd5e1;
    margin-bottom: 16px;
}

.report-placeholder h3[b-do7ddiv0oy] {
    font-size: 1.1rem;
    font-weight: 600;
    color: #64748b;
    margin: 0 0 8px 0;
}

.report-placeholder p[b-do7ddiv0oy] {
    font-size: 0.85rem;
    color: #94a3b8;
    margin: 0;
}

/* Config panel */
.report-config-panel[b-do7ddiv0oy] {
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    padding: 24px;
    display: flex;
    flex-direction: column;
    gap: 24px;
    height: 100%;
    overflow-y: auto;
}

.config-header[b-do7ddiv0oy] {
    display: flex;
    align-items: center;
    gap: 16px;
    padding-bottom: 16px;
    border-bottom: 1px solid #f1f5f9;
}

.config-header-icon[b-do7ddiv0oy] {
    width: 48px;
    height: 48px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.2rem;
    flex-shrink: 0;
}

.config-header-icon.color-energy[b-do7ddiv0oy] { background: #d97706; color: #fff; }
.config-header-icon.color-production[b-do7ddiv0oy] { background: #2563eb; color: #fff; }
.config-header-icon.color-compliance[b-do7ddiv0oy] { background: #16a34a; color: #fff; }
.config-header-icon.color-kpi[b-do7ddiv0oy] { background: #7c3aed; color: #fff; }
.config-header-icon.color-downtime[b-do7ddiv0oy] { background: #dc2626; color: #fff; }
.config-header-icon.color-health[b-do7ddiv0oy] { background: #db2777; color: #fff; }

.config-header h2[b-do7ddiv0oy] {
    font-size: 1.15rem;
    font-weight: 700;
    color: #1e293b;
    margin: 0;
}

.config-header p[b-do7ddiv0oy] {
    font-size: 0.82rem;
    color: #64748b;
    margin: 4px 0 0 0;
}

/* Config sections */
.config-section[b-do7ddiv0oy] {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.config-section-label[b-do7ddiv0oy] {
    font-size: 0.78rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #475569;
}

/* Date presets */
.date-presets[b-do7ddiv0oy] {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.preset-btn[b-do7ddiv0oy] {
    padding: 6px 14px;
    border: 1px solid #e2e8f0;
    border-radius: 20px;
    background: #fff;
    color: #475569;
    font-size: 0.78rem;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.15s ease;
}

.preset-btn:hover[b-do7ddiv0oy] {
    border-color: #2563eb;
    color: #2563eb;
    background: #eff6ff;
}

.preset-btn.active[b-do7ddiv0oy] {
    background: #2563eb;
    color: #fff;
    border-color: #2563eb;
}

/* Filter fields */
.filter-fields[b-do7ddiv0oy] {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

.filter-field[b-do7ddiv0oy] {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 150px;
    flex: 1;
    max-width: 220px;
}

.filter-field label[b-do7ddiv0oy] {
    font-size: 0.75rem;
    font-weight: 600;
    color: #64748b;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.filter-field input[b-do7ddiv0oy],
.filter-field select[b-do7ddiv0oy] {
    padding: 9px 12px;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    font-size: 0.88rem;
    background: #f8fafc;
    color: #1e293b;
    transition: all 0.15s ease;
    font-family: inherit;
}

.filter-field input:focus[b-do7ddiv0oy],
.filter-field select:focus[b-do7ddiv0oy] {
    outline: none;
    border-color: #2563eb;
    background: #fff;
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
}

/* Actions */
.config-actions[b-do7ddiv0oy] {
    padding-top: 16px;
    border-top: 1px solid #f1f5f9;
}

.btn-generate[b-do7ddiv0oy] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 12px 32px;
    background: linear-gradient(135deg, #16a34a, #15803d);
    color: #fff;
    border: none;
    border-radius: 10px;
    font-size: 0.95rem;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.2s ease;
    font-family: inherit;
}

.btn-generate:hover:not([disabled])[b-do7ddiv0oy] {
    background: linear-gradient(135deg, #15803d, #166534);
    box-shadow: 0 4px 16px rgba(22, 163, 74, 0.3);
    transform: translateY(-1px);
}

.btn-generate[disabled][b-do7ddiv0oy] {
    opacity: 0.6;
    cursor: not-allowed;
    transform: none;
    box-shadow: none;
}

/* Toast messages */
.report-toast[b-do7ddiv0oy] {
    margin-top: 12px;
    padding: 12px 16px;
    border-radius: 8px;
    font-size: 0.85rem;
    display: flex;
    align-items: center;
}

.report-toast.error[b-do7ddiv0oy] {
    background: #fef2f2;
    border: 1px solid #fecaca;
    color: #dc2626;
}

.report-toast.success[b-do7ddiv0oy] {
    background: #f0fdf4;
    border: 1px solid #bbf7d0;
    color: #16a34a;
}

/* Auth placeholder */
.auth-required[b-do7ddiv0oy] {
    text-align: center;
    padding: 80px 24px;
    color: #94a3b8;
}

/* Responsive */
@media (max-width: 900px) {
    .report-main-grid[b-do7ddiv0oy] {
        grid-template-columns: 1fr;
    }

    .report-page[b-do7ddiv0oy] {
        height: auto;
    }

    .report-right-panel[b-do7ddiv0oy] {
        min-height: 400px;
    }
}

@media (max-width: 640px) {
    .report-page[b-do7ddiv0oy] {
        padding: 16px;
    }

    .date-presets[b-do7ddiv0oy] {
        gap: 4px;
    }

    .preset-btn[b-do7ddiv0oy] {
        padding: 5px 10px;
        font-size: 0.72rem;
    }

    .filter-fields[b-do7ddiv0oy] {
        flex-direction: column;
    }

    .filter-field[b-do7ddiv0oy] {
        max-width: 100%;
    }
}
/* /Pages/TrasferimentoProgrammi.razor.rz.scp.css */
/* =============================================
   Trasferimento Programmi CNC — Two-Panel Layout
   ============================================= */

.transfer-page[b-nrbii8hqt7] {
    padding: 24px;
    height: calc(100vh - var(--header-height, 80px) - var(--footer-height, 0px) - 48px);
    display: flex;
    flex-direction: column;
}

/* Header */
.transfer-header[b-nrbii8hqt7] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 20px;
}

.transfer-header h1[b-nrbii8hqt7] {
    font-size: 1.4rem;
    font-weight: 700;
    color: #152C54;
    margin: 0;
}

.transfer-header .subtitle[b-nrbii8hqt7] {
    color: #64748b;
    font-size: 0.85rem;
    margin-top: 4px;
}

.status-badge[b-nrbii8hqt7] {
    display: inline-flex;
    align-items: center;
    padding: 6px 14px;
    border-radius: 20px;
    font-size: 0.78rem;
    font-weight: 600;
}

.status-badge.online[b-nrbii8hqt7] { background: #dcfce7; color: #16a34a; }
.status-badge.offline[b-nrbii8hqt7] { background: #fee2e2; color: #dc2626; }

/* Two-column layout */
.transfer-main-grid[b-nrbii8hqt7] {
    display: grid;
    grid-template-columns: 1fr 400px;
    gap: 20px;
    flex: 1;
    min-height: 0;
}

/* Shared panel */
.panel-section[b-nrbii8hqt7] {
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    padding: 16px;
}

.panel-section-title[b-nrbii8hqt7] {
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: #94a3b8;
    margin-bottom: 12px;
    padding-bottom: 8px;
    border-bottom: 1px solid #f1f5f9;
    display: flex;
    align-items: center;
}

.btn-icon-sm[b-nrbii8hqt7] {
    width: 28px;
    height: 28px;
    border: 1px solid #e2e8f0;
    border-radius: 6px;
    background: #f8fafc;
    color: #64748b;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.75rem;
    transition: all 0.15s ease;
}

.btn-icon-sm:hover:not([disabled])[b-nrbii8hqt7] { border-color: #2563eb; color: #2563eb; background: #eff6ff; }
.btn-icon-sm[disabled][b-nrbii8hqt7] { opacity: 0.5; cursor: not-allowed; }

/* =============================================
   LEFT PANEL: File Browser
   ============================================= */

.transfer-left-panel[b-nrbii8hqt7] {
    display: flex;
    flex-direction: column;
    min-height: 0;
}

.file-browser-panel[b-nrbii8hqt7] {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-height: 0;
    overflow: hidden;
}

/* Breadcrumb */
.folder-breadcrumb[b-nrbii8hqt7] {
    display: flex;
    align-items: center;
    gap: 4px;
    padding: 8px 12px;
    background: #f8fafc;
    border-radius: 8px;
    margin-bottom: 10px;
    flex-wrap: wrap;
    min-height: 36px;
}

.breadcrumb-item[b-nrbii8hqt7] {
    background: none;
    border: none;
    color: #2563eb;
    font-size: 0.82rem;
    font-weight: 500;
    cursor: pointer;
    padding: 2px 6px;
    border-radius: 4px;
    transition: all 0.12s ease;
    font-family: inherit;
}

.breadcrumb-item:hover[b-nrbii8hqt7] { background: #dbeafe; }

.breadcrumb-sep[b-nrbii8hqt7] { font-size: 0.55rem; color: #cbd5e1; }

/* Subfolders */
.subfolder-list[b-nrbii8hqt7] { display: flex; flex-direction: column; gap: 2px; margin-bottom: 8px; }

.subfolder-item[b-nrbii8hqt7] {
    display: flex;
    align-items: center;
    padding: 8px 12px;
    border-radius: 8px;
    cursor: pointer;
    font-size: 0.85rem;
    color: #1e293b;
    transition: all 0.12s ease;
}

.subfolder-item:hover[b-nrbii8hqt7] { background: #fef9c3; }
.subfolder-arrow[b-nrbii8hqt7] { font-size: 0.65rem; color: #cbd5e1; }

/* File list header */
.file-list-header[b-nrbii8hqt7] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 8px 0;
    border-bottom: 1px solid #f1f5f9;
    margin-bottom: 4px;
    gap: 8px;
}

.select-all-check[b-nrbii8hqt7] {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 0.8rem;
    color: #64748b;
    cursor: pointer;
    flex-shrink: 0;
}

.select-all-check input[type="checkbox"][b-nrbii8hqt7] { width: 16px; height: 16px; accent-color: #2563eb; cursor: pointer; }

.selected-badge[b-nrbii8hqt7] {
    background: #2563eb;
    color: #fff;
    padding: 3px 10px;
    border-radius: 12px;
    font-size: 0.72rem;
    font-weight: 600;
    flex-shrink: 0;
}

/* Bulk channel controls */
.bulk-channel-controls[b-nrbii8hqt7] {
    display: flex;
    align-items: center;
    gap: 4px;
}

.bulk-label[b-nrbii8hqt7] {
    font-size: 0.72rem;
    color: #94a3b8;
    font-weight: 600;
    margin-left: 6px;
}

/* =============================================
   Channel buttons (shared)
   ============================================= */

.ch-btn[b-nrbii8hqt7], .ch-btn-sm[b-nrbii8hqt7] {
    border: 1px solid #e2e8f0;
    border-radius: 6px;
    background: #f8fafc;
    color: #64748b;
    cursor: pointer;
    font-weight: 600;
    font-family: inherit;
    transition: all 0.12s ease;
}

.ch-btn[b-nrbii8hqt7] { padding: 4px 10px; font-size: 0.72rem; }
.ch-btn-sm[b-nrbii8hqt7] { padding: 2px 7px; font-size: 0.68rem; border-radius: 4px; }

.ch-btn:hover[b-nrbii8hqt7], .ch-btn-sm:hover[b-nrbii8hqt7] { background: #e2e8f0; }

.ch-btn.active.p1[b-nrbii8hqt7], .ch-btn-sm.active.p1[b-nrbii8hqt7] { background: #2563eb; color: #fff; border-color: #2563eb; }
.ch-btn.active.p2[b-nrbii8hqt7], .ch-btn-sm.active.p2[b-nrbii8hqt7] { background: #d97706; color: #fff; border-color: #d97706; }
.ch-btn.active.p3[b-nrbii8hqt7], .ch-btn-sm.active.p3[b-nrbii8hqt7] { background: #7c3aed; color: #fff; border-color: #7c3aed; }

/* Channel tags (mini pills) */
.ch-tag[b-nrbii8hqt7] {
    display: inline-flex;
    align-items: center;
    padding: 1px 6px;
    border-radius: 4px;
    font-size: 0.65rem;
    font-weight: 700;
    letter-spacing: 0.02em;
}

.ch-tag.p1[b-nrbii8hqt7] { background: #dbeafe; color: #2563eb; }
.ch-tag.p2[b-nrbii8hqt7] { background: #fef3c7; color: #d97706; }
.ch-tag.p3[b-nrbii8hqt7] { background: #ede9fe; color: #7c3aed; }

/* =============================================
   File list items
   ============================================= */

.file-list[b-nrbii8hqt7] {
    overflow-y: auto;
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-height: 0;
}

.file-item[b-nrbii8hqt7] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    border-radius: 8px;
    cursor: pointer;
    transition: all 0.12s ease;
    border: 2px solid transparent;
}

.file-item:hover[b-nrbii8hqt7] { background: #f8fafc; }

.file-item.selected[b-nrbii8hqt7] {
    background: #eff6ff;
    border-color: #bfdbfe;
}

.file-check input[type="checkbox"][b-nrbii8hqt7] { width: 16px; height: 16px; accent-color: #2563eb; cursor: pointer; }

.file-icon[b-nrbii8hqt7] {
    width: 36px;
    height: 36px;
    border-radius: 8px;
    background: #f1f5f9;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #64748b;
    font-size: 0.9rem;
    flex-shrink: 0;
}

.file-item.selected .file-icon[b-nrbii8hqt7] { background: #dbeafe; color: #2563eb; }

.file-info[b-nrbii8hqt7] {
    display: flex;
    flex-direction: column;
    min-width: 0;
    flex: 1;
}

.file-name[b-nrbii8hqt7] {
    font-size: 0.88rem;
    font-weight: 600;
    color: #1e293b;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.file-rename-preview[b-nrbii8hqt7] {
    font-size: 0.75rem;
    color: #16a34a;
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: 4px;
}

.file-rename-preview i[b-nrbii8hqt7] {
    font-size: 0.6rem;
    color: #94a3b8;
}

.file-meta[b-nrbii8hqt7] {
    font-size: 0.72rem;
    color: #94a3b8;
}

.file-channel-selector[b-nrbii8hqt7] {
    display: flex;
    gap: 2px;
    flex-shrink: 0;
}

/* Placeholders */
.loading-placeholder[b-nrbii8hqt7],
.empty-placeholder[b-nrbii8hqt7] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 48px 24px;
    color: #94a3b8;
    text-align: center;
    gap: 8px;
    flex: 1;
}

.loading-placeholder i[b-nrbii8hqt7], .empty-placeholder i[b-nrbii8hqt7] { font-size: 1.8rem; margin-bottom: 4px; }
.empty-placeholder span[b-nrbii8hqt7] { font-size: 0.9rem; font-weight: 500; }
.empty-placeholder small[b-nrbii8hqt7] { font-size: 0.75rem; line-height: 1.5; }
.empty-placeholder.small[b-nrbii8hqt7] { padding: 24px 16px; }
.empty-placeholder code[b-nrbii8hqt7] { background: #f1f5f9; padding: 2px 8px; border-radius: 4px; font-size: 0.72rem; color: #475569; }

/* =============================================
   RIGHT PANEL
   ============================================= */

.transfer-right-panel[b-nrbii8hqt7] {
    display: flex;
    flex-direction: column;
    gap: 16px;
    min-height: 0;
    overflow-y: auto;
}

/* Machine grid */
.machine-grid[b-nrbii8hqt7] { display: flex; flex-direction: column; gap: 6px; }

.machine-card[b-nrbii8hqt7] {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 14px;
    border-radius: 10px;
    cursor: pointer;
    transition: all 0.15s ease;
    border: 2px solid transparent;
}

.machine-card:hover[b-nrbii8hqt7] { background: #f8fafc; border-color: #e2e8f0; }
.machine-card.active[b-nrbii8hqt7] { background: #eff6ff; border-color: #2563eb; }

.machine-card-icon[b-nrbii8hqt7] {
    width: 40px;
    height: 40px;
    border-radius: 10px;
    background: #f1f5f9;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #64748b;
    font-size: 1rem;
    flex-shrink: 0;
}

.machine-card.active .machine-card-icon[b-nrbii8hqt7] { background: #2563eb; color: #fff; }

.machine-card-info[b-nrbii8hqt7] { display: flex; flex-direction: column; min-width: 0; flex: 1; }

.machine-card-name[b-nrbii8hqt7] { font-size: 0.88rem; font-weight: 600; color: #1e293b; }

.machine-card-ip[b-nrbii8hqt7] {
    font-size: 0.72rem;
    color: #94a3b8;
    font-family: 'Consolas', 'Courier New', monospace;
    display: flex;
    align-items: center;
    gap: 6px;
}

.machine-channels[b-nrbii8hqt7] { display: flex; gap: 3px; }
.machine-card-check[b-nrbii8hqt7] { color: #2563eb; font-size: 1rem; flex-shrink: 0; }

/* =============================================
   Rename Rules Info
   ============================================= */

.rules-grid[b-nrbii8hqt7] { display: flex; flex-direction: column; gap: 6px; }

.rule-card[b-nrbii8hqt7] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    border-radius: 8px;
    background: #f8fafc;
    border-left: 3px solid #e2e8f0;
}

.rule-card.p1[b-nrbii8hqt7] { border-left-color: #2563eb; }
.rule-card.p2[b-nrbii8hqt7] { border-left-color: #d97706; }
.rule-card.p3[b-nrbii8hqt7] { border-left-color: #7c3aed; }

.rule-channel[b-nrbii8hqt7] {
    font-size: 0.78rem;
    font-weight: 700;
    min-width: 28px;
}

.rule-card.p1 .rule-channel[b-nrbii8hqt7] { color: #2563eb; }
.rule-card.p2 .rule-channel[b-nrbii8hqt7] { color: #d97706; }
.rule-card.p3 .rule-channel[b-nrbii8hqt7] { color: #7c3aed; }

.rule-desc[b-nrbii8hqt7] { font-size: 0.78rem; color: #475569; flex: 1; }

.rule-offset[b-nrbii8hqt7] {
    font-size: 0.68rem;
    font-weight: 600;
    color: #64748b;
    background: #e2e8f0;
    padding: 2px 6px;
    border-radius: 4px;
    font-family: 'Consolas', 'Courier New', monospace;
}

/* =============================================
   Transfer Summary + Action
   ============================================= */

.action-panel[b-nrbii8hqt7] { display: flex; flex-direction: column; gap: 16px; }

.transfer-summary[b-nrbii8hqt7] { display: flex; flex-direction: column; gap: 8px; }

.summary-item[b-nrbii8hqt7] { display: flex; justify-content: space-between; align-items: center; }
.summary-label[b-nrbii8hqt7] { font-size: 0.78rem; color: #64748b; }
.summary-value[b-nrbii8hqt7] { font-size: 0.85rem; font-weight: 600; color: #1e293b; }
.summary-value.channel-summary[b-nrbii8hqt7] { display: flex; gap: 4px; }

.btn-transfer[b-nrbii8hqt7] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 14px 24px;
    background: linear-gradient(135deg, #2563eb, #1d4ed8);
    color: #fff;
    border: none;
    border-radius: 10px;
    font-size: 0.95rem;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.2s ease;
    font-family: inherit;
    width: 100%;
}

.btn-transfer:hover:not([disabled])[b-nrbii8hqt7] {
    background: linear-gradient(135deg, #1d4ed8, #1e40af);
    box-shadow: 0 4px 16px rgba(37, 99, 235, 0.35);
    transform: translateY(-1px);
}

.btn-transfer[disabled][b-nrbii8hqt7] { opacity: 0.5; cursor: not-allowed; transform: none; box-shadow: none; }

/* =============================================
   Transfer Log
   ============================================= */

.log-panel[b-nrbii8hqt7] { flex: 1; display: flex; flex-direction: column; min-height: 0; }

.transfer-log[b-nrbii8hqt7] { display: flex; flex-direction: column; gap: 4px; overflow-y: auto; flex: 1; }

.log-entry[b-nrbii8hqt7] {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 10px 12px;
    border-radius: 8px;
    background: #f8fafc;
    position: relative;
}

.log-entry.completed[b-nrbii8hqt7] { background: #f0fdf4; }
.log-entry.failed[b-nrbii8hqt7] { background: #fef2f2; }
.log-entry.transferring[b-nrbii8hqt7] { background: #eff6ff; }

.log-status-icon[b-nrbii8hqt7] {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.75rem;
    flex-shrink: 0;
}

.log-entry.queued .log-status-icon[b-nrbii8hqt7] { color: #94a3b8; }
.log-entry.transferring .log-status-icon[b-nrbii8hqt7] { color: #2563eb; }
.log-entry.completed .log-status-icon[b-nrbii8hqt7] { color: #16a34a; }
.log-entry.failed .log-status-icon[b-nrbii8hqt7] { color: #dc2626; }
.log-entry.cancelled .log-status-icon[b-nrbii8hqt7] { color: #94a3b8; }

.log-info[b-nrbii8hqt7] { display: flex; flex-direction: column; min-width: 0; flex: 1; }

.log-filename[b-nrbii8hqt7] {
    font-size: 0.82rem;
    font-weight: 600;
    color: #1e293b;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    display: flex;
    align-items: center;
    gap: 4px;
}

.log-arrow[b-nrbii8hqt7] { font-size: 0.6rem; color: #94a3b8; }

.log-detail[b-nrbii8hqt7] {
    font-size: 0.72rem;
    color: #64748b;
    display: flex;
    align-items: center;
    gap: 4px;
}

.log-error[b-nrbii8hqt7] { font-size: 0.72rem; color: #dc2626; margin-top: 2px; }

.log-progress[b-nrbii8hqt7] {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: #e2e8f0;
    border-radius: 0 0 8px 8px;
    overflow: hidden;
}

.log-progress-bar[b-nrbii8hqt7] {
    height: 100%;
    background: linear-gradient(90deg, #2563eb, #3b82f6);
    transition: width 0.3s ease;
    border-radius: 0 0 8px 8px;
}

/* Toast */
.transfer-toast[b-nrbii8hqt7] {
    padding: 12px 16px;
    border-radius: 8px;
    font-size: 0.85rem;
    display: flex;
    align-items: center;
}

.transfer-toast.success[b-nrbii8hqt7] { background: #f0fdf4; border: 1px solid #bbf7d0; color: #16a34a; }
.transfer-toast.error[b-nrbii8hqt7] { background: #fef2f2; border: 1px solid #fecaca; color: #dc2626; }

/* Auth placeholder */
.auth-required[b-nrbii8hqt7] { text-align: center; padding: 80px 24px; color: #94a3b8; }

/* =============================================
   Responsive
   ============================================= */

@media (max-width: 960px) {
    .transfer-main-grid[b-nrbii8hqt7] { grid-template-columns: 1fr; }
    .transfer-page[b-nrbii8hqt7] { height: auto; }
    .transfer-header[b-nrbii8hqt7] { flex-direction: column; align-items: flex-start; gap: 8px; }
}

@media (max-width: 640px) {
    .transfer-page[b-nrbii8hqt7] { padding: 16px; }
    .machine-grid[b-nrbii8hqt7] { gap: 4px; }
    .bulk-channel-controls[b-nrbii8hqt7] { flex-wrap: wrap; }
    .file-channel-selector[b-nrbii8hqt7] { flex-direction: column; gap: 1px; }
}
/* /Shared/MainLayout.razor.rz.scp.css */
.page[b-l375xj1pke] {
    position: relative;
    display: flex;
    flex-direction: row;
}

main[b-l375xj1pke] {
    flex: 1;
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    background-color: var(--ec-bg);
}

main > article[b-l375xj1pke] {
    flex: 1;
}

.sidebar[b-l375xj1pke] {
    background-color: var(--ec-surface-elevated);
    height: 100vh;
    position: sticky;
    top: 0;
    overflow-y: auto;
}

.top-row[b-l375xj1pke] {
    background-color: #152C54;
    border-bottom: none;
    justify-content: flex-end;
    height: var(--header-height);
    display: flex;
    align-items: center;
    position: sticky;
    top: 0;
    z-index: 1;
}

    .top-row[b-l375xj1pke]  a, .top-row .btn-link[b-l375xj1pke] {
        white-space: nowrap;
        margin-left: 1.5rem;
    }

    .top-row a:first-child[b-l375xj1pke] {
        overflow: hidden;
        text-overflow: ellipsis;
    }

@media (max-width: 640.98px) {
    .page[b-l375xj1pke] {
        flex-direction: column;
    }

    .top-row:not(.auth)[b-l375xj1pke] {
        display: none;
    }

    .top-row.auth[b-l375xj1pke] {
        justify-content: space-between;
    }

    .top-row a[b-l375xj1pke], .top-row .btn-link[b-l375xj1pke] {
        margin-left: 0;
    }

    .sidebar[b-l375xj1pke] {
        height: auto;
        position: fixed;
    }
}

.user-badge[b-l375xj1pke] {
    display: inline-flex;
    align-items: center;
    font-size: 0.82rem;
    font-weight: 600;
    color: #cbd5e1;
    background: rgba(255,255,255,0.08);
    padding: 5px 12px;
    border-radius: 6px;
    white-space: nowrap;
}

.btn-logout-topbar[b-l375xj1pke] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 6px;
    border: 1px solid rgba(255,255,255,0.15);
    background: rgba(255,255,255,0.06);
    color: #f87171;
    font-size: 0.9rem;
    cursor: pointer;
    transition: all 0.2s;
}
.btn-logout-topbar:hover[b-l375xj1pke] {
    background: rgba(248,113,113,0.15);
    border-color: rgba(248,113,113,0.4);
    color: #fca5a5;
}

[b-l375xj1pke] .btn-login-topbar {
    display: inline-flex;
    align-items: center;
    font-size: 0.82rem;
    font-weight: 600;
    color: #93c5fd;
    background: rgba(59,130,246,0.12);
    padding: 5px 14px;
    border-radius: 6px;
    text-decoration: none;
    border: 1px solid rgba(59,130,246,0.25);
    transition: all 0.2s;
}
[b-l375xj1pke] .btn-login-topbar:hover {
    background: rgba(59,130,246,0.22);
    color: #bfdbfe;
}

@media (min-width: 641px) {
    .top-row[b-l375xj1pke], article[b-l375xj1pke] {
        padding-left: 1.5rem !important;
        padding-right: 1.5rem !important;
    }
}
/* /Shared/NavMenu.razor.rz.scp.css */
.navbar-toggler[b-bf8moz9noz] {
    background-color: rgba(255, 255, 255, 0.1);
}

.top-row[b-bf8moz9noz] {
    height: 3.5rem;
    background-color: rgba(21, 44, 84, 0.9);
}

.navbar-brand[b-bf8moz9noz] {
    font-size: 1.1rem;
}

.oi[b-bf8moz9noz] {
    width: 2rem;
    font-size: 1.1rem;
    vertical-align: text-top;
    top: -2px;
}

.nav-item[b-bf8moz9noz] {
    font-size: 0.9rem;
    padding-bottom: 0.5rem;
}

    .nav-item:first-of-type[b-bf8moz9noz] {
        padding-top: 1rem;
    }

    .nav-item:last-of-type[b-bf8moz9noz] {
        padding-bottom: 1rem;
    }

    .nav-item[b-bf8moz9noz]  a {
        color: #d7d7d7;
        border-radius: 4px;
        height: 3rem;
        display: flex;
        align-items: center;
        line-height: 3rem;
    }

.nav-item[b-bf8moz9noz]  a.active {
    background-color: rgba(255,255,255,0.25);
    color: white;
}

.nav-item[b-bf8moz9noz]  a:hover {
    background-color: rgba(255,255,255,0.1);
    color: white;
}

@media (min-width: 641px) {
    .navbar-toggler[b-bf8moz9noz] {
        display: none;
    }

    .collapse[b-bf8moz9noz] {
        display: block;
    }
    
    .nav-scrollable[b-bf8moz9noz] {
        height: calc(100vh - 3.5rem);
        overflow-y: auto;
    }
}
