:root {
    --primary: #f97316;
    --primary-hover: #ea580c;
    --primary-soft: #fff7ed;

    --background: #f4f7fb;
    --surface: #ffffff;
    --surface-secondary: #f8fafc;

    --text: #0f172a;
    --text-secondary: #64748b;
    --text-muted: #94a3b8;

    --border: #e2e8f0;
    --border-strong: #cbd5e1;

    --success: #16a34a;
    --warning: #d97706;
    --danger: #dc2626;
    --info: #c2410c;

    --sidebar-background: #0f172a;
    --sidebar-surface: #1e293b;
    --sidebar-text: #cbd5e1;
    --sidebar-text-active: #ffffff;

    --shadow-sm: 0 1px 3px rgba(15, 23, 42, 0.08);
    --shadow-md: 0 10px 30px rgba(15, 23, 42, 0.08);

    --sidebar-width: 270px;
    --sidebar-collapsed-width: 82px;
    --topbar-height: 76px;

    --radius-sm: 8px;
    --radius-md: 12px;
    --radius-lg: 18px;
}

[data-theme="dark"] {
    --background: #0b1120;
    --surface: #111827;
    --surface-secondary: #172033;

    --text: #f8fafc;
    --text-secondary: #cbd5e1;
    --text-muted: #94a3b8;

    --border: #263246;
    --border-strong: #334155;

    --primary-soft: rgba(37, 99, 235, 0.15);

    --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.25);
    --shadow-md: 0 10px 30px rgba(0, 0, 0, 0.28);
}

* {
    box-sizing: border-box;
}

html {
    min-height: 100%;
}

body {
    min-height: 100vh;
    margin: 0;
    background: var(--background);
    color: var(--text);
    font-family:
        Inter,
        Arial,
        Helvetica,
        sans-serif;
    font-size: 15px;
    line-height: 1.5;
}

button,
input,
select,
textarea {
    font: inherit;
}

a {
    color: inherit;
}

.app-shell {
    min-height: 100vh;
}

.sidebar {
    position: fixed;
    z-index: 1000;
    top: 0;
    bottom: 0;
    left: 0;
    width: var(--sidebar-width);
    display: flex;
    flex-direction: column;
    background: var(--sidebar-background);
    color: var(--sidebar-text);
    transition: width 0.25s ease, transform 0.25s ease;
}

.sidebar-header {
    min-height: var(--topbar-height);
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 20px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.sidebar-brand {
    display: flex;
    align-items: center;
    gap: 12px;
    color: #ffffff;
    text-decoration: none;
}

.brand-logo {
    width: 42px;
    height: 42px;
    flex: 0 0 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 12px;
    background: var(--primary);
    overflow: hidden;
    padding: 6px;
}

.brand-logo img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.brand-text {
    font-size: 23px;
    font-weight: 800;
    letter-spacing: -0.5px;
}

.sidebar-close {
    display: none;
    padding: 0;
    border: 0;
    background: transparent;
    color: #ffffff;
    font-size: 30px;
    cursor: pointer;
}

.sidebar-navigation {
    flex: 1;
    overflow-y: auto;
    padding: 20px 14px;
}

.navigation-section {
    margin-bottom: 26px;
}

.navigation-title {
    display: block;
    margin: 0 12px 9px;
    color: #64748b;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.11em;
    text-transform: uppercase;
}

.navigation-link {
    min-height: 46px;
    display: flex;
    align-items: center;
    gap: 13px;
    margin-bottom: 5px;
    padding: 10px 13px;
    border-radius: 10px;
    color: var(--sidebar-text);
    text-decoration: none;
    transition:
        background 0.16s ease,
        color 0.16s ease;
}

.navigation-link:hover {
    background: rgba(255, 255, 255, 0.07);
    color: #ffffff;
}

.navigation-link.is-active {
    background: var(--primary);
    color: var(--sidebar-text-active);
    box-shadow: 0 8px 18px rgba(37, 99, 235, 0.24);
}

.navigation-icon {
    width: 24px;
    flex: 0 0 24px;
    text-align: center;
    font-size: 18px;
}

.navigation-label {
    white-space: nowrap;
}

.sidebar-footer {
    padding: 16px;
    border-top: 1px solid rgba(255, 255, 255, 0.08);
}

.sidebar-user {
    display: flex;
    align-items: center;
    gap: 11px;
    padding: 11px;
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.06);
}

.user-avatar {
    width: 40px;
    height: 40px;
    flex: 0 0 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: var(--primary);
    color: #ffffff;
    font-size: 13px;
    font-weight: 800;
}

.sidebar-user-info {
    min-width: 0;
}

.sidebar-user-info strong,
.sidebar-user-info small {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.sidebar-user-info strong {
    color: #ffffff;
    font-size: 13px;
}

.sidebar-user-info small {
    color: #94a3b8;
    font-size: 11px;
}

.app-main {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    margin-left: var(--sidebar-width);
    transition: margin-left 0.25s ease;
}

.topbar {
    position: sticky;
    z-index: 900;
    top: 0;
    min-height: var(--topbar-height);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 12px 28px;
    border-bottom: 1px solid var(--border);
    background: rgba(255, 255, 255, 0.94);
    backdrop-filter: blur(12px);
}

[data-theme="dark"] .topbar {
    background: rgba(17, 24, 39, 0.94);
}

.topbar-left,
.topbar-right {
    display: flex;
    align-items: center;
}

.topbar-left {
    min-width: 0;
    gap: 14px;
}

.topbar-right {
    gap: 10px;
}

.topbar-title {
    min-width: 0;
}

.topbar-title h1 {
    margin: 0;
    color: var(--text);
    font-size: 21px;
    line-height: 1.25;
}

.topbar-title p {
    margin: 2px 0 0;
    color: var(--text-secondary);
    font-size: 12px;
}

.icon-button {
    position: relative;
    width: 42px;
    height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--border);
    border-radius: 10px;
    background: var(--surface);
    color: var(--text-secondary);
    text-decoration: none;
    cursor: pointer;
}

.icon-button:hover {
    border-color: var(--border-strong);
    color: var(--primary);
}

.mobile-menu-button {
    display: none;
    flex-direction: column;
    gap: 4px;
}

.mobile-menu-button span {
    width: 18px;
    height: 2px;
    border-radius: 5px;
    background: currentColor;
}

.notification-badge {
    position: absolute;
    top: -5px;
    right: -5px;
    min-width: 19px;
    height: 19px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 5px;
    border: 2px solid var(--surface);
    border-radius: 10px;
    background: var(--danger);
    color: #ffffff;
    font-size: 10px;
    font-weight: 700;
}

.global-search {
    position: relative;
    width: min(310px, 28vw);
}

.global-search-icon {
    position: absolute;
    top: 50%;
    left: 13px;
    transform: translateY(-50%);
    font-size: 14px;
}

.global-search input {
    width: 100%;
    height: 42px;
    padding: 0 14px 0 40px;
    border: 1px solid var(--border);
    border-radius: 10px;
    outline: none;
    background: var(--surface-secondary);
    color: var(--text);
}

.global-search input:focus {
    border-color: var(--primary);
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.12);
}

.user-menu {
    position: relative;
}

.user-menu-button {
    min-height: 48px;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 4px 8px 4px 4px;
    border: 0;
    border-radius: 12px;
    background: transparent;
    color: var(--text);
    cursor: pointer;
}

.user-menu-button:hover {
    background: var(--surface-secondary);
}

.user-menu-info {
    min-width: 0;
    text-align: left;
}

.user-menu-info strong,
.user-menu-info small {
    display: block;
    max-width: 150px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.user-menu-info strong {
    font-size: 13px;
}

.user-menu-info small {
    color: var(--text-secondary);
    font-size: 11px;
}

.user-menu-arrow {
    color: var(--text-muted);
}

.user-dropdown {
    position: absolute;
    top: calc(100% + 10px);
    right: 0;
    width: 220px;
    display: none;
    padding: 8px;
    border: 1px solid var(--border);
    border-radius: 12px;
    background: var(--surface);
    box-shadow: var(--shadow-md);
}

.user-dropdown.is-open {
    display: block;
}

.user-dropdown a {
    display: block;
    padding: 10px 12px;
    border-radius: 8px;
    color: var(--text);
    text-decoration: none;
}

.user-dropdown a:hover {
    background: var(--surface-secondary);
}

.user-dropdown .logout-link {
    color: var(--danger);
}

.dropdown-separator {
    height: 1px;
    margin: 6px 0;
    background: var(--border);
}

.page-content {
    flex: 1;
    width: 100%;
    padding: 28px;
}

.app-footer {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    padding: 18px 28px;
    border-top: 1px solid var(--border);
    color: var(--text-secondary);
    font-size: 12px;
}

.app-footer-brand {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.app-footer-brand span:first-child {
    color: var(--text-primary);
    font-weight: 700;
}

.welcome-panel {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 24px;
    padding: 28px;
    border-radius: var(--radius-lg);
    background:
        linear-gradient(
            125deg,
            #ea580c 0%,
            #f97316 55%,
            #fdba74 100%
        );
    color: #ffffff;
    box-shadow: 0 18px 45px rgba(37, 99, 235, 0.22);
}

.welcome-label {
    display: block;
    margin-bottom: 6px;
    color: rgba(255, 255, 255, 0.75);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.welcome-panel h2 {
    margin: 0;
    font-size: 27px;
}

.welcome-panel p {
    max-width: 700px;
    margin: 8px 0 0;
    color: rgba(255, 255, 255, 0.82);
}

.welcome-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.button {
    min-height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 9px 16px;
    border: 1px solid transparent;
    border-radius: 10px;
    font-weight: 700;
    text-decoration: none;
    cursor: pointer;
}

.button-primary {
    background: var(--primary);
    color: #ffffff;
}

.button-primary:hover {
    background: var(--primary-hover);
}

.button-secondary {
    border-color: var(--border);
    background: var(--surface);
    color: var(--text);
}

.welcome-panel .button-primary {
    background: #ffffff;
    color: #ea580c;
}

.welcome-panel .button-secondary {
    border-color: rgba(255, 255, 255, 0.26);
    background: rgba(255, 255, 255, 0.12);
    color: #ffffff;
}

.statistics-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
    margin-bottom: 24px;
}

.statistic-card {
    padding: 20px;
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    background: var(--surface);
    box-shadow: var(--shadow-sm);
}

.statistic-card-header {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 14px;
}

.statistic-icon {
    width: 39px;
    height: 39px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 10px;
    background: var(--primary-soft);
}

.statistic-label {
    color: var(--text-secondary);
    font-size: 13px;
    font-weight: 600;
}

.statistic-value {
    display: block;
    margin-bottom: 4px;
    font-size: 29px;
    line-height: 1;
}

.statistic-note {
    color: var(--text-muted);
    font-size: 12px;
}

.dashboard-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 350px;
    gap: 20px;
}

.panel {
    overflow: hidden;
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    background: var(--surface);
    box-shadow: var(--shadow-sm);
}

.panel-header {
    min-height: 73px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 15px;
    padding: 16px 20px;
    border-bottom: 1px solid var(--border);
}

.panel-header h3 {
    margin: 0;
    font-size: 16px;
}

.panel-header p {
    margin: 2px 0 0;
    color: var(--text-secondary);
    font-size: 12px;
}

.panel-link {
    color: var(--primary);
    font-size: 13px;
    font-weight: 700;
    text-decoration: none;
}

.panel-body {
    padding: 20px;
}

.panel-body-table {
    padding: 0;
}

.table-responsive {
    overflow-x: auto;
}

.data-table {
    width: 100%;
    border-collapse: collapse;
}

.data-table th,
.data-table td {
    padding: 14px 18px;
    border-bottom: 1px solid var(--border);
    text-align: left;
    vertical-align: middle;
}

.data-table th {
    background: var(--surface-secondary);
    color: var(--text-secondary);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.data-table tbody tr:last-child td {
    border-bottom: 0;
}

.data-table tbody tr:hover {
    background: var(--surface-secondary);
}

.table-primary-link {
    display: block;
    color: var(--text);
    font-weight: 700;
    text-decoration: none;
}

.table-primary-link:hover {
    color: var(--primary);
}

.table-secondary-text {
    display: block;
    margin-top: 2px;
    color: var(--text-secondary);
}

.status-badge {
    display: inline-flex;
    align-items: center;
    padding: 4px 9px;
    border-radius: 20px;
    font-size: 11px;
    font-weight: 700;
}

.status-planned {
    background: #e0f2fe;
    color: #0369a1;
}

.status-active {
    background: #dcfce7;
    color: #15803d;
}

.status-paused {
    background: #fef3c7;
    color: #b45309;
}

.status-completed {
    background: #ffedd5;
    color: #ea580c;
}

.status-archived {
    background: #e2e8f0;
    color: #475569;
}

.quick-actions {
    padding: 12px;
}

.quick-action {
    display: flex;
    align-items: center;
    gap: 13px;
    padding: 13px;
    border-radius: 11px;
    color: var(--text);
    text-decoration: none;
}

.quick-action:hover {
    background: var(--surface-secondary);
}

.quick-action-icon {
    width: 42px;
    height: 42px;
    flex: 0 0 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 11px;
    background: var(--primary-soft);
    font-size: 18px;
}

.quick-action strong,
.quick-action small {
    display: block;
}

.quick-action strong {
    font-size: 13px;
}

.quick-action small {
    color: var(--text-secondary);
    font-size: 11px;
}

.empty-state {
    padding: 48px 20px;
    text-align: center;
}

.empty-state-icon {
    margin-bottom: 10px;
    font-size: 36px;
}

.empty-state h4 {
    margin: 0 0 5px;
    font-size: 17px;
}

.empty-state p {
    margin: 0 0 18px;
    color: var(--text-secondary);
}

.sidebar-overlay {
    position: fixed;
    z-index: 950;
    inset: 0;
    display: none;
    background: rgba(15, 23, 42, 0.58);
}

body.sidebar-collapsed .sidebar {
    width: var(--sidebar-collapsed-width);
}

body.sidebar-collapsed .app-main {
    margin-left: var(--sidebar-collapsed-width);
}

body.sidebar-collapsed .brand-text,
body.sidebar-collapsed .navigation-title,
body.sidebar-collapsed .navigation-label,
body.sidebar-collapsed .sidebar-user-info {
    display: none;
}

body.sidebar-collapsed .sidebar-header {
    justify-content: center;
    padding: 0 10px;
}

body.sidebar-collapsed .navigation-link {
    justify-content: center;
    padding-left: 10px;
    padding-right: 10px;
}

body.sidebar-collapsed .sidebar-user {
    justify-content: center;
    padding: 7px;
}

@media (max-width: 1200px) {
    .statistics-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .dashboard-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 900px) {
    .sidebar {
        width: min(290px, 88vw);
        transform: translateX(-100%);
    }

    .app-main,
    body.sidebar-collapsed .app-main {
        margin-left: 0;
    }

    body.mobile-sidebar-open .sidebar {
        transform: translateX(0);
    }

    body.mobile-sidebar-open .sidebar-overlay {
        display: block;
    }

    .sidebar-close {
        display: block;
    }

    .sidebar-toggle {
        display: none;
    }

    .mobile-menu-button {
        display: inline-flex;
    }

    .global-search {
        display: none;
    }

    body.sidebar-collapsed .sidebar {
        width: min(290px, 88vw);
    }

    body.sidebar-collapsed .brand-text,
    body.sidebar-collapsed .navigation-title,
    body.sidebar-collapsed .navigation-label,
    body.sidebar-collapsed .sidebar-user-info {
        display: block;
    }

    body.sidebar-collapsed .sidebar-header {
        justify-content: space-between;
        padding: 0 20px;
    }

    body.sidebar-collapsed .navigation-link {
        justify-content: flex-start;
        padding: 10px 13px;
    }

    body.sidebar-collapsed .sidebar-user {
        justify-content: flex-start;
        padding: 11px;
    }
}

@media (max-width: 680px) {
    .topbar {
        padding: 10px 14px;
    }

    .topbar-title p,
    .user-menu-info,
    .user-menu-arrow {
        display: none;
    }

    .page-content {
        padding: 16px;
    }

    .welcome-panel {
        align-items: flex-start;
        flex-direction: column;
        padding: 22px;
    }

    .welcome-panel h2 {
        font-size: 22px;
    }

    .welcome-actions {
        width: 100%;
    }

    .welcome-actions .button {
        flex: 1;
    }

    .statistics-grid {
        grid-template-columns: 1fr;
        gap: 12px;
    }

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

    .app-footer {
        align-items: center;
        flex-direction: column;
        padding: 16px;
    }
}
/* Schedule x IWP */
.schedule-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:16px}.schedule-summary article{background:var(--surface,#fff);border:1px solid var(--border,#dfe5ee);border-radius:14px;padding:16px}.schedule-summary span{display:block;color:#6b7280;font-size:13px}.schedule-summary strong{display:block;font-size:26px;margin-top:5px}.schedule-card{padding:0;overflow:visible}.schedule-toolbar{position:sticky;top:0;z-index:25;display:flex;justify-content:space-between;gap:12px;align-items:center;padding:12px;background:var(--surface,#fff);border-bottom:1px solid var(--border,#dfe5ee);border-radius:14px 14px 0 0}.schedule-search,.schedule-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.schedule-search input{min-width:320px}.schedule-table-wrap{overflow:auto;max-height:68vh}.schedule-table{border-collapse:separate;border-spacing:0;min-width:7600px;width:100%;font-size:12px}.schedule-table th,.schedule-table td{padding:8px 10px;border-right:1px solid #e5e7eb;border-bottom:1px solid #e5e7eb;white-space:nowrap;max-width:280px;overflow:hidden;text-overflow:ellipsis;background:var(--surface,#fff)}.schedule-table thead th{position:sticky;top:0;z-index:12;background:#f3f6fa;font-weight:700}.schedule-table .sticky-col{position:sticky;left:0;z-index:15}.schedule-table .number-col{left:42px;min-width:62px}.schedule-table .checkbox-col{min-width:42px;width:42px}.schedule-table .sticky-action{position:sticky;right:0;z-index:15;background:#fff;min-width:90px}.schedule-table thead .sticky-action{z-index:18;background:#f3f6fa}.button-danger{background:#b42318;color:#fff}.button-small{padding:6px 9px;font-size:12px}.pagination{display:flex;justify-content:space-between;align-items:center;padding:12px 16px}.schedule-form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.schedule-field span,.schedule-modal label{display:block;font-weight:700;margin-bottom:6px}.schedule-field input,.schedule-field textarea,.schedule-modal input,.schedule-modal textarea,.schedule-modal select{width:100%}.schedule-modal{position:fixed;inset:0;z-index:100;background:rgba(15,23,42,.55);display:grid;place-items:center;padding:20px}.schedule-modal[hidden]{display:none}.schedule-modal-box{width:min(620px,100%);background:#fff;border-radius:16px;padding:22px;box-shadow:0 25px 80px rgba(0,0,0,.28)}.schedule-modal-box label{margin:14px 0}.alert-danger{background:#fee4e2;color:#912018;border:1px solid #fecdca}.schedule-import-form{display:grid;gap:18px;max-width:600px}@media(max-width:900px){.schedule-summary{grid-template-columns:1fr}.schedule-toolbar{align-items:stretch;flex-direction:column}.schedule-search input{min-width:0;width:100%}.schedule-form-grid{grid-template-columns:1fr}}
/* Schedule x IWP v2: szybka edycja komórek */
.editable-cell{cursor:cell;transition:background .15s,box-shadow .15s}.editable-cell:hover{background:#f8fafc!important}.editable-cell.is-editing{background:#fff7d6!important;box-shadow:inset 0 0 0 2px #f59e0b;outline:0;white-space:normal;min-width:180px}.editable-cell.is-dirty{background:#e8f4ff!important;box-shadow:inset 0 -2px 0 #f97316}.schedule-edit-hint{padding:10px 16px;border-top:1px solid #e5e7eb;background:#f8fafc;color:#64748b;font-size:12px}[data-theme="dark"] .editable-cell:hover{background:#172033!important}[data-theme="dark"] .editable-cell.is-editing{background:#3a2d12!important}[data-theme="dark"] .editable-cell.is-dirty{background:#122d48!important}[data-theme="dark"] .schedule-edit-hint{background:#111827;color:#94a3b8}

/* Schedule x IWP - Live Sync */
.schedule-summary article small{display:block;margin-top:4px;color:var(--text-muted,#64748b);font-size:11px}.live-sync-ok{color:#16a34a}.live-sync-error{color:#dc2626}.live-toast{position:fixed;right:22px;bottom:22px;z-index:10050;max-width:460px;padding:13px 16px;border-radius:12px;background:#0f172a;color:#fff;box-shadow:0 16px 40px rgba(15,23,42,.28);font-weight:700}.live-toast.success{background:#166534}.live-toast.warning{background:#92400e}.live-toast.error{background:#991b1b}.row-lock-status{display:block;max-width:180px;margin-bottom:5px;padding:3px 7px;border-radius:999px;background:#fee2e2;color:#991b1b;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.schedule-table tr.is-locked-by-other td{background-image:linear-gradient(rgba(254,242,242,.55),rgba(254,242,242,.55))}.schedule-table tr.live-updated td{animation:liveRowFlash 1.8s ease}.schedule-table tr.has-live-conflict td{box-shadow:inset 0 2px 0 #f59e0b,inset 0 -2px 0 #f59e0b}@keyframes liveRowFlash{0%{background-color:#bbf7d0}100%{background-color:transparent}}

/* Schedule x IWP v5 - professional table */
.schedule-toolbar{position:sticky;top:0;z-index:40;background:var(--card-bg,#fff);padding:12px;border-bottom:1px solid #e5e7eb;box-shadow:0 3px 12px rgba(15,23,42,.08)}
.schedule-quick-filters{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:10px 0}
.schedule-quick-filters select,.schedule-quick-filters input{min-width:150px;max-width:220px;padding:8px 10px;border:1px solid #cbd5e1;border-radius:8px;background:#fff}
.column-panel{position:fixed;right:24px;top:90px;z-index:1000;width:min(380px,calc(100vw - 30px));max-height:75vh;overflow:auto;background:#fff;border:1px solid #cbd5e1;border-radius:12px;box-shadow:0 18px 50px rgba(15,23,42,.22);padding:16px}
.column-panel[hidden]{display:none}.column-panel-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.column-list{display:grid;grid-template-columns:1fr 1fr;gap:7px}.column-list label{display:flex;gap:7px;align-items:flex-start;font-size:13px}.column-panel-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:14px}
.schedule-table th[data-field]{cursor:pointer;user-select:none;position:relative}.schedule-table th[data-field] .sort-mark{font-size:10px;margin-left:5px;opacity:.65}.schedule-table th .col-resizer{position:absolute;right:-3px;top:0;width:7px;height:100%;cursor:col-resize;z-index:8}
.schedule-table .pinned-1{position:sticky;left:0;z-index:25;min-width:44px;width:44px;background:var(--surface,#fff)}.schedule-table .pinned-2{position:sticky;left:44px;z-index:24;min-width:62px;width:62px;background:var(--surface,#fff)}.schedule-table thead .pinned-1,.schedule-table thead .pinned-2{z-index:35;background:#f3f6fa}.schedule-table .pinned-1,.schedule-table .pinned-2{box-shadow:1px 0 0 #e5e7eb}.schedule-table .pinned-3,.schedule-table .pinned-4{position:static!important;left:auto!important;z-index:auto!important}
.schedule-table td.progress-complete{background:#dcfce7!important;color:#166534;font-weight:700}.schedule-table td.progress-active{background:#fef9c3!important;color:#854d0e;font-weight:700}.schedule-table td.progress-zero{background:#fee2e2!important;color:#991b1b;font-weight:700}.schedule-table td.status-open{background:#ffedd5!important;color:#c2410c;font-weight:700}.schedule-table tr.has-constraint td[data-field="constraints_value"]{background:#e5e7eb!important;color:#111827;font-weight:700}
.schedule-context-menu{position:fixed;z-index:1500;min-width:190px;background:#fff;border:1px solid #cbd5e1;border-radius:10px;box-shadow:0 16px 45px rgba(15,23,42,.25);padding:6px}.schedule-context-menu[hidden]{display:none}.schedule-context-menu button,.schedule-context-menu a{display:block;width:100%;border:0;background:transparent;text-align:left;padding:9px 11px;border-radius:7px;color:#0f172a;text-decoration:none;font:inherit;cursor:pointer}.schedule-context-menu button:hover,.schedule-context-menu a:hover{background:#f1f5f9}.schedule-context-menu .danger{color:#b91c1c}
.view-status{font-size:12px;color:#64748b;margin-left:6px}.schedule-table tr.filtered-out{display:none}

/* Schedule x IWP v6 advanced filters */
.schedule-quick-filters{position:relative;overflow:visible}
.multi-filter,.date-filter{position:relative}
.filter-trigger{min-height:38px;padding:8px 11px;border:1px solid #cbd5e1;border-radius:8px;background:#fff;color:#0f172a;font:inherit;cursor:pointer;white-space:nowrap}
.multi-filter.is-active .filter-trigger,.date-filter.is-active .filter-trigger{border-color:#f97316;background:#fff7ed;color:#ea580c}
.filter-badge{font-weight:700}
.filter-menu{position:absolute;z-index:1200;top:calc(100% + 6px);left:0;width:280px;max-width:calc(100vw - 30px);padding:12px;background:#fff;border:1px solid #cbd5e1;border-radius:10px;box-shadow:0 18px 45px rgba(15,23,42,.2)}
.filter-menu[hidden]{display:none}
.filter-search{width:100%;max-width:none!important;margin-bottom:8px}
.filter-options{max-height:280px;overflow:auto;border-top:1px solid #e2e8f0;border-bottom:1px solid #e2e8f0;padding:6px 0}
.filter-options label{display:flex;align-items:center;gap:8px;padding:6px 4px;font-size:13px;cursor:pointer}
.filter-options label:hover{background:#f8fafc}
.filter-options input{min-width:auto!important}
.filter-menu-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px}
.filter-menu-actions button{border:0;border-radius:7px;padding:7px 9px;background:#e2e8f0;cursor:pointer;font-size:12px}
.date-filter-menu{width:310px}.date-filter-menu>label{display:grid;grid-template-columns:42px 1fr;align-items:center;gap:8px;margin-bottom:8px}.date-filter-menu input[type=text]{width:100%;max-width:none!important}.date-filter-menu .empty-date-check{display:flex;grid-template-columns:none;margin:10px 0}.date-filter-menu .empty-date-check input{min-width:auto!important}
.active-filter-count{font-size:12px;font-weight:700;color:#475569;padding:0 4px}
@media(max-width:900px){.filter-menu{position:fixed;left:15px!important;right:15px;width:auto;top:120px;max-height:70vh;overflow:auto}}


/* Schedule x IWP v7 dashboard */
.iwp-dashboard{margin:0 0 18px;background:linear-gradient(145deg,#111827,#172033);border:1px solid rgba(148,163,184,.18);border-radius:18px;padding:18px;color:#e5e7eb;box-shadow:0 14px 35px rgba(15,23,42,.18)}
.dashboard-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:15px}.dashboard-heading h2{margin:0;font-size:21px;color:#fff}.dashboard-heading p{margin:4px 0 0;color:#94a3b8;font-size:13px}
.dashboard-kpis{display:grid;grid-template-columns:repeat(6,minmax(125px,1fr));gap:10px}.dashboard-kpis article{background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.08);border-radius:13px;padding:13px 14px;min-height:76px}.dashboard-kpis span{display:block;color:#aebbd0;font-size:12px;margin-bottom:7px}.dashboard-kpis strong{font-size:22px;color:#fff}.dashboard-kpis .kpi-good{border-left:3px solid #22c55e}.dashboard-kpis .kpi-warn{border-left:3px solid #f59e0b}.dashboard-kpis .kpi-bad{border-left:3px solid #ef4444}.dashboard-kpis .kpi-info{border-left:3px solid #fb923c}
.dashboard-progress{margin-top:12px;background:rgba(255,255,255,.045);padding:13px 15px;border-radius:13px}.dashboard-progress>div:first-child{display:flex;justify-content:space-between;margin-bottom:8px}.dashboard-progress-track,.dashboard-mini-track{display:block;background:rgba(148,163,184,.22);overflow:hidden;border-radius:999px}.dashboard-progress-track{height:12px}.dashboard-progress-track i,.dashboard-mini-track i{display:block;height:100%;background:linear-gradient(90deg,#fb923c,#22c55e);border-radius:inherit}
.dashboard-groups{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:12px}.dashboard-panel{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.07);border-radius:13px;padding:14px}.dashboard-panel h3{margin:0 0 10px;font-size:14px;color:#f8fafc}.dashboard-list{display:grid;gap:6px}.dashboard-row{width:100%;display:grid;grid-template-columns:minmax(90px,1.2fr) minmax(70px,1fr) 52px 58px;align-items:center;gap:8px;border:0;background:transparent;color:#e5e7eb;text-align:left;padding:7px 5px;border-radius:8px;cursor:pointer}.dashboard-row:hover{background:rgba(255,255,255,.08)}.dashboard-row-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.dashboard-mini-track{height:7px}.dashboard-row strong{font-size:12px;text-align:right}.dashboard-row small{font-size:10px;color:#94a3b8;text-align:right}.dashboard-empty{color:#94a3b8;font-size:12px}
@media(max-width:1250px){.dashboard-kpis{grid-template-columns:repeat(4,1fr)}.dashboard-groups{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.dashboard-heading{align-items:flex-start}.dashboard-kpis{grid-template-columns:repeat(2,1fr)}.dashboard-groups{grid-template-columns:1fr}.dashboard-row{grid-template-columns:minmax(80px,1.3fr) 1fr 48px 52px}.iwp-dashboard{padding:13px}}

.dashboard-home{margin-top:18px}.dashboard-row-static{cursor:default}.dashboard-row-static:hover{transform:none}

/* FIX v8.3: stabilne przewijanie tabeli bez nakładania kolumn */
.schedule-table{table-layout:auto!important}
.schedule-table th,.schedule-table td{box-sizing:border-box}
.schedule-table-wrap{position:relative;isolation:isolate}

/* v8.4: stały nagłówek tabeli Schedule x IWP podczas przewijania w pionie */
.schedule-table-wrap{
    position:relative;
    overflow:auto;
    max-height:68vh;
    isolation:isolate;
}
.schedule-table thead th,
.schedule-table thead th[data-field]{
    position:sticky !important;
    top:0 !important;
    z-index:40;
    background:#f3f6fa !important;
    box-shadow:0 1px 0 #dfe5ee;
}
.schedule-table thead .pinned-1,
.schedule-table thead .pinned-2,
.schedule-table thead .sticky-col{
    z-index:50 !important;
}
.schedule-table thead .sticky-action{
    z-index:50 !important;
}

/* v8.5 - Progress displayed as percentage while stored as decimal 0-1 */
.schedule-table td.progress-cell{min-width:145px;padding:7px 10px!important}
.progress-cell-display{display:flex;align-items:center;gap:9px;min-width:120px}
.progress-cell-track{height:9px;flex:1;min-width:72px;border-radius:999px;background:rgba(148,163,184,.28);overflow:hidden;box-shadow:inset 0 1px 2px rgba(15,23,42,.14)}
.progress-cell-track span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#ef4444,#f59e0b,#22c55e);transition:width .25s ease}
.progress-cell-display strong{min-width:38px;text-align:right;font-size:12px;font-variant-numeric:tabular-nums}
.schedule-table td.progress-cell.is-editing{padding:8px 10px!important;text-align:center;font-weight:700;outline:2px solid #fb923c;outline-offset:-2px}


/* Inplag v8.8 - automatyczne dopasowanie całej aplikacji do rozdzielczości */
html, body {
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
}

.app-shell,
.app-main,
.page-content {
    min-width: 0;
    max-width: 100%;
    box-sizing: border-box;
}

/* Płynne odstępy i typografia bez sztucznego zoomu/scale. */
.page-content {
    padding: clamp(12px, 1.45vw, 28px);
}

.topbar {
    padding-left: clamp(12px, 1.45vw, 28px);
    padding-right: clamp(12px, 1.45vw, 28px);
}

.app-footer {
    padding-left: clamp(12px, 1.45vw, 28px);
    padding-right: clamp(12px, 1.45vw, 28px);
}

/* Dashboard sam dobiera liczbę kolumn do dostępnej szerokości. */
.statistics-grid {
    grid-template-columns: repeat(auto-fit, minmax(min(230px, 100%), 1fr));
    gap: clamp(10px, 1vw, 18px);
}

.dashboard-grid {
    grid-template-columns: minmax(0, 1fr) minmax(280px, 22vw);
    gap: clamp(12px, 1.2vw, 20px);
}

.dashboard-kpis {
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
}

.dashboard-groups {
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
}

/* Schedule x IWP wykorzystuje całą dostępną przestrzeń, ale nie ucina kolumn. */
body.page-scale-schedule .page-content {
    width: 100%;
    max-width: none;
}

body.page-scale-schedule .schedule-card,
body.page-scale-schedule .schedule-toolbar,
body.page-scale-schedule .schedule-table-wrap {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
}

body.page-scale-schedule .schedule-table-wrap {
    overflow-x: auto !important;
    overflow-y: auto !important;
    max-height: calc(100vh - clamp(245px, 27vh, 360px));
    scrollbar-gutter: stable both-edges;
    overscroll-behavior: contain;
}

body.page-scale-schedule .schedule-table {
    width: max-content !important;
    min-width: 7600px;
    max-width: none !important;
}

.schedule-toolbar,
.schedule-actions,
.schedule-search {
    min-width: 0;
}

.schedule-actions {
    flex: 1 1 auto;
}

.schedule-toolbar .button,
.schedule-toolbar button,
.schedule-toolbar select,
.schedule-toolbar input {
    max-width: 100%;
}

/* Duże ekrany: wykorzystanie przestrzeni zamiast sztucznego zmniejszania strony. */
@media (min-width: 1600px) {
    .page-content {
        padding: 22px 24px;
    }

    .dashboard-grid {
        grid-template-columns: minmax(0, 1fr) minmax(320px, 20vw);
    }

    .schedule-table-wrap {
        max-height: calc(100vh - 260px);
    }
}

/* Średnie ekrany i laptopy. */
@media (max-width: 1250px) {
    .dashboard-grid {
        grid-template-columns: 1fr;
    }

    .topbar-right .global-search {
        max-width: min(280px, 26vw);
    }
}

@media (max-width: 900px) {
    .schedule-toolbar {
        align-items: stretch;
        flex-direction: column;
    }

    .schedule-actions,
    .schedule-actions-full {
        width: 100%;
    }

    body.page-scale-schedule .schedule-table-wrap {
        max-height: calc(100vh - 320px);
    }
}

/* Telefon i mały tablet. */
@media (max-width: 768px) {
    .page-content {
        padding: 10px;
    }

    .topbar {
        padding: 9px 10px;
    }

    .topbar-title h1 {
        font-size: 18px;
    }

    .statistics-grid,
    .dashboard-kpis,
    .dashboard-groups,
    .schedule-summary {
        grid-template-columns: 1fr;
    }

    .welcome-panel {
        align-items: flex-start;
        flex-direction: column;
        padding: 18px;
    }

    .schedule-table-wrap {
        max-height: calc(100vh - 300px);
    }
}

/* v8.7.1 - usunięte wyszukiwanie globalne; przyciski zajmują cały pasek */
.schedule-actions-full{width:100%;justify-content:flex-start;}
.schedule-toolbar:has(.schedule-actions-full){justify-content:flex-start;}

/* v8.12 - Schedule x IWP: czytelny nagłówek tabeli w trybie ciemnym */
[data-theme="dark"] .schedule-table thead th{
    background:#111827 !important;
    color:#f8fafc !important;
    border-color:#263246 !important;
}
[data-theme="dark"] .schedule-table thead th *{color:#f8fafc !important;}
[data-theme="dark"] .schedule-table .sticky-action,
[data-theme="dark"] .schedule-table thead .sticky-action{background:#111827 !important;}
[data-theme="dark"] .schedule-table td{border-color:#263246;}


/* Cable Matrix */
.cable-filter-form{display:flex;flex-wrap:wrap;gap:10px;align-items:end;width:100%}.cable-filter-form label{display:grid;gap:5px;min-width:170px}.cable-filter-form label span{font-size:12px;font-weight:700;color:var(--muted-text)}.cable-column-list section{border-bottom:1px solid var(--border-color);padding:8px 0}.cable-column-list h4{margin:4px 0 8px;font-size:12px;text-transform:uppercase;letter-spacing:.08em}.cable-column-list label{align-items:flex-start}.cable-form-section{margin:22px 0 10px;padding-bottom:8px;border-bottom:1px solid var(--border-color)}.editable-cell textarea{width:100%;min-width:150px;min-height:64px;resize:vertical;border:1px solid #fb923c;border-radius:5px;padding:6px;background:var(--card-bg);color:var(--text-color)}[data-theme="dark"] .schedule-table thead th{background:#111827!important;color:#f8fafc!important;border-color:#263246!important}[data-theme="dark"] .schedule-table thead th *{color:#f8fafc!important}

.table-search-form{display:flex;gap:8px;align-items:center;flex-wrap:wrap;flex:1}.table-search-form input[type=search]{min-width:300px;flex:1}.table-search-form select{min-width:135px}[data-theme="dark"] .table-search-form input,[data-theme="dark"] .table-search-form select{background:#111827;color:#f8fafc;border-color:#334155}@media(max-width:900px){.table-search-form{width:100%}.table-search-form input[type=search]{min-width:0;width:100%}}

/* Etap 2A - Mój profil */
.profile-layout{display:grid;grid-template-columns:300px minmax(0,1fr);gap:20px;align-items:start}.profile-main{display:grid;gap:20px}.profile-summary-card{text-align:center;padding:26px}.profile-avatar-large{width:116px;height:116px;border-radius:50%;margin:0 auto 16px;display:grid;place-items:center;overflow:hidden;background:linear-gradient(135deg,#f97316,#7c3aed);color:#fff;font-size:34px;font-weight:800}.profile-avatar-large img,.user-avatar img{width:100%;height:100%;object-fit:cover}.profile-summary-card h2{margin:0 0 6px}.profile-summary-card>p{margin:0 0 20px;color:var(--muted-text)}.profile-meta-list{display:grid;text-align:left;border-top:1px solid var(--border-color)}.profile-meta-list div{display:grid;gap:3px;padding:11px 0;border-bottom:1px solid var(--border-color)}.profile-meta-list span{font-size:12px;color:var(--muted-text)}.profile-meta-list strong{font-size:14px;overflow-wrap:anywhere}.profile-online{color:#16a34a}.profile-form{padding:22px}.profile-form .card-header{margin-bottom:18px}.profile-form .card-header h2{margin:0 0 5px}.profile-form .card-header p{margin:0}.form-grid{display:grid;gap:16px}.form-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.form-field{display:grid;gap:7px}.form-field>span{font-size:13px;font-weight:700}.form-field-full{grid-column:1/-1}.profile-checks{display:flex;gap:18px;align-items:center;min-height:44px;padding:0 4px}.profile-checks label{display:flex;gap:7px;align-items:center}.form-actions{display:flex;justify-content:flex-end;margin-top:20px}.profile-status-success{color:#16a34a}.profile-status-warning{color:#d97706}.profile-status-danger{color:#dc2626}.profile-status-neutral{color:var(--muted-text)}.alert{margin-bottom:16px;padding:12px 14px;border-radius:8px}.alert-success{background:#dcfce7;color:#166534;border:1px solid #bbf7d0}.alert-error{background:#fee2e2;color:#991b1b;border:1px solid #fecaca}.user-avatar{overflow:hidden}.user-avatar img{display:block}
@media(max-width:1000px){.profile-layout{grid-template-columns:1fr}.profile-summary-card{max-width:none}}@media(max-width:700px){.form-grid-2{grid-template-columns:1fr}.form-field-full{grid-column:auto}.profile-form{padding:16px}}

/* Etap 2A.1 - nowoczesny profil użytkownika */
.profile-hero{position:relative;overflow:hidden;border-radius:18px;margin-bottom:22px;min-height:210px;background:linear-gradient(118deg,#431407 0%,#ea580c 52%,#7c3aed 100%);box-shadow:0 18px 45px rgba(194,65,12,.22);color:#fff}.profile-hero-pattern{position:absolute;inset:0;background:radial-gradient(circle at 80% 25%,rgba(255,255,255,.2),transparent 24%),radial-gradient(circle at 18% 90%,rgba(56,189,248,.22),transparent 30%);opacity:.9}.profile-hero-pattern:after{content:"";position:absolute;width:320px;height:320px;border:1px solid rgba(255,255,255,.14);border-radius:50%;right:-90px;top:-160px;box-shadow:0 0 0 38px rgba(255,255,255,.04),0 0 0 76px rgba(255,255,255,.03)}.profile-hero-content{position:relative;z-index:1;display:flex;align-items:flex-end;gap:24px;padding:40px 38px 32px}.profile-avatar-wrap{position:relative;flex:0 0 auto}.profile-avatar-xl{width:132px;height:132px;border-radius:28px;display:grid;place-items:center;overflow:hidden;background:linear-gradient(135deg,#fb923c,#8b5cf6);border:5px solid rgba(255,255,255,.9);box-shadow:0 18px 35px rgba(15,23,42,.32);font-size:38px;font-weight:800;color:#fff}.profile-avatar-xl img,.profile-avatar-upload-preview img{width:100%;height:100%;object-fit:cover}.profile-presence{position:absolute;right:-2px;bottom:-2px;width:27px;height:27px;border-radius:50%;background:#22c55e;border:5px solid #fff;box-shadow:0 3px 12px rgba(15,23,42,.25)}.profile-hero-info{min-width:0;flex:1}.profile-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.profile-title-row h2{font-size:32px;line-height:1.15;margin:0 0 7px;color:#fff}.profile-title-row p{margin:0;color:rgba(255,255,255,.8);font-size:15px}.profile-online-pill{display:inline-flex;align-items:center;gap:8px;padding:8px 13px;border-radius:999px;background:rgba(15,23,42,.28);border:1px solid rgba(255,255,255,.2);font-size:13px;font-weight:700;white-space:nowrap}.profile-online-pill i{width:8px;height:8px;border-radius:50%;background:#4ade80;box-shadow:0 0 0 4px rgba(74,222,128,.16)}.profile-hero-tags{display:flex;flex-wrap:wrap;gap:9px;margin-top:20px}.profile-hero-tags span{padding:8px 11px;border-radius:9px;background:rgba(15,23,42,.2);border:1px solid rgba(255,255,255,.14);font-size:12px;color:rgba(255,255,255,.9)}
.profile-dashboard{display:grid;grid-template-columns:320px minmax(0,1fr);gap:22px;align-items:start}.profile-side-column,.profile-content-column{display:grid;gap:20px}.profile-info-card,.profile-security-card,.profile-modern-card{padding:22px;border-radius:16px}.profile-card-heading{display:flex;align-items:center;gap:13px;margin-bottom:20px}.profile-card-heading.with-action{align-items:flex-start}.profile-card-heading>div{min-width:0;flex:1}.profile-card-heading h3{margin:0 0 4px;font-size:17px}.profile-card-heading p{margin:0;color:var(--muted-text);font-size:12px}.profile-card-heading.compact{margin-bottom:14px}.profile-card-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:12px;background:rgba(249,115,22,.11);color:#f97316;font-size:18px;flex:0 0 auto}.profile-info-list{display:grid}.profile-info-list div{display:flex;justify-content:space-between;gap:15px;padding:12px 0;border-bottom:1px solid var(--border-color)}.profile-info-list div:last-child{border-bottom:0}.profile-info-list span{font-size:12px;color:var(--muted-text)}.profile-info-list strong{font-size:12px;text-align:right;overflow-wrap:anywhere}.profile-sep-summary{padding:20px;display:flex;gap:15px;align-items:center;border-left:4px solid #94a3b8}.profile-sep-summary.is-success{border-left-color:#22c55e}.profile-sep-summary.is-warning{border-left-color:#f59e0b}.profile-sep-summary.is-danger{border-left-color:#ef4444}.profile-sep-status-icon{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;font-size:22px;font-weight:900;background:rgba(148,163,184,.14)}.profile-sep-summary.is-success .profile-sep-status-icon{background:rgba(34,197,94,.13);color:#16a34a}.profile-sep-summary.is-warning .profile-sep-status-icon{background:rgba(245,158,11,.14);color:#d97706}.profile-sep-summary.is-danger .profile-sep-status-icon{background:rgba(239,68,68,.13);color:#dc2626}.profile-sep-summary span{font-size:11px;color:var(--muted-text);text-transform:uppercase;letter-spacing:.06em}.profile-sep-summary h3{margin:3px 0;font-size:17px}.profile-sep-summary p{margin:0;font-size:12px;color:var(--muted-text)}.profile-security-card ul{margin:0;padding-left:20px;color:var(--muted-text);font-size:12px;line-height:1.8}
.profile-modern-card{transition:transform .18s ease,box-shadow .18s ease}.profile-modern-card:hover{transform:translateY(-1px);box-shadow:0 14px 35px rgba(15,23,42,.08)}.profile-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px}.profile-field{display:grid;gap:7px;align-content:start}.profile-field>span{font-size:12px;font-weight:750;color:var(--text-color)}.profile-field>small{font-size:11px;color:var(--muted-text)}.profile-field-wide{grid-column:1/-1}.profile-field .form-control{min-height:44px;border-radius:10px;transition:border-color .15s ease,box-shadow .15s ease}.profile-field .form-control:focus{border-color:#fb923c;box-shadow:0 0 0 3px rgba(59,130,246,.13)}.profile-card-actions{display:flex;justify-content:flex-end;padding-top:20px;margin-top:20px;border-top:1px solid var(--border-color)}.profile-card-actions .button{min-width:190px;justify-content:center}.profile-status-badge{padding:7px 10px;border-radius:999px;font-size:11px;font-weight:800;background:rgba(148,163,184,.12);color:var(--muted-text);white-space:nowrap}.profile-status-badge.is-success{background:rgba(34,197,94,.12);color:#16a34a}.profile-status-badge.is-warning{background:rgba(245,158,11,.13);color:#d97706}.profile-status-badge.is-danger{background:rgba(239,68,68,.12);color:#dc2626}
.profile-avatar-uploader{display:flex;align-items:center;gap:18px;padding:17px;margin:-2px 0 22px;border:1.5px dashed var(--border-color);border-radius:14px;background:rgba(148,163,184,.045);transition:.16s ease}.profile-avatar-uploader.is-dragging{border-color:#fb923c;background:rgba(251,146,60,.08)}.profile-avatar-upload-preview{width:82px;height:82px;border-radius:20px;display:grid;place-items:center;overflow:hidden;background:linear-gradient(135deg,#f97316,#7c3aed);color:#fff;font-size:24px;font-weight:800;flex:0 0 auto}.profile-avatar-upload-copy{min-width:0;flex:1}.profile-avatar-upload-copy strong{display:block;margin-bottom:4px;font-size:14px}.profile-avatar-upload-copy p{margin:0 0 10px;color:var(--muted-text);font-size:12px;line-height:1.45}.profile-file-button{display:inline-flex;margin-right:10px;padding:8px 12px;font-size:12px;cursor:pointer}.profile-avatar-upload-copy small{color:var(--muted-text);font-size:11px;overflow-wrap:anywhere}
.profile-option-grid{display:grid;gap:9px}.profile-option-grid-3{grid-template-columns:repeat(3,1fr)}.profile-option-grid-2{grid-template-columns:repeat(2,1fr)}.profile-option{position:relative;cursor:pointer}.profile-option input{position:absolute;opacity:0;pointer-events:none}.profile-option>span{display:grid;gap:2px;padding:12px;border:1px solid var(--border-color);border-radius:11px;background:var(--card-bg);transition:.15s ease}.profile-option b{font-size:13px}.profile-option small{font-size:10px;color:var(--muted-text)}.profile-option input:checked+span{border-color:#fb923c;background:rgba(251,146,60,.09);box-shadow:0 0 0 2px rgba(251,146,60,.08)}.profile-option input:focus+span{box-shadow:0 0 0 3px rgba(59,130,246,.15)}.password-strength{height:6px;border-radius:999px;overflow:hidden;background:rgba(148,163,184,.2)}.password-strength i{display:block;width:0;height:100%;border-radius:inherit;background:#ef4444;transition:width .2s ease,background .2s ease}.password-strength i[data-score="2"]{background:#f59e0b}.password-strength i[data-score="3"]{background:#fb923c}.password-strength i[data-score="4"]{background:#22c55e}.is-match{color:#16a34a!important}.is-no-match{color:#dc2626!important}.profile-alert{border-radius:12px;box-shadow:0 8px 24px rgba(15,23,42,.06)}
[data-theme="dark"] .profile-modern-card:hover{box-shadow:0 15px 40px rgba(0,0,0,.25)}[data-theme="dark"] .profile-hero{box-shadow:0 18px 50px rgba(0,0,0,.28)}[data-theme="dark"] .profile-avatar-uploader{background:rgba(15,23,42,.32)}[data-theme="dark"] .profile-option>span{background:rgba(15,23,42,.35)}
@media(max-width:1100px){.profile-dashboard{grid-template-columns:1fr}.profile-side-column{grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch}.profile-info-card{grid-row:span 2}.profile-security-card,.profile-sep-summary{height:100%}}
@media(max-width:820px){.profile-hero-content{padding:28px 24px}.profile-avatar-xl{width:105px;height:105px;border-radius:24px}.profile-title-row h2{font-size:25px}.profile-side-column{grid-template-columns:1fr 1fr}.profile-info-card{grid-column:1/-1;grid-row:auto}.profile-form-grid{grid-template-columns:1fr}.profile-field-wide{grid-column:auto}}
@media(max-width:620px){.profile-hero{min-height:auto}.profile-hero-content{align-items:center;flex-direction:column;text-align:center;padding:26px 18px}.profile-title-row{display:block}.profile-online-pill{margin-top:12px}.profile-hero-tags{justify-content:center}.profile-dashboard{gap:15px}.profile-side-column{grid-template-columns:1fr}.profile-modern-card,.profile-info-card,.profile-security-card{padding:16px}.profile-avatar-uploader{align-items:flex-start}.profile-avatar-upload-preview{width:66px;height:66px;border-radius:16px}.profile-card-heading.with-action{flex-wrap:wrap}.profile-status-badge{margin-left:55px}.profile-card-actions .button{width:100%}.profile-option-grid-3{grid-template-columns:repeat(3,1fr)}}

/* ===== InPlag Stage 2B.1: Notifications & Settings ===== */
.module-hero{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:28px 30px;margin-bottom:22px;border:1px solid var(--border-color,#dbe4ef);border-radius:22px;background:linear-gradient(135deg,rgba(53,98,255,.13),rgba(108,92,231,.06));box-shadow:0 14px 35px rgba(15,23,42,.06)}
.module-hero h2{margin:5px 0 7px;font-size:28px}.module-hero p{margin:0;color:var(--text-muted,#64748b);max-width:700px}.module-kicker{font-size:11px;font-weight:800;letter-spacing:.16em;color:#4f63d9}.hero-actions{display:flex;gap:10px;flex-wrap:wrap}.hero-actions form{margin:0}.alert{padding:14px 17px;border-radius:13px;margin:0 0 18px;font-weight:600}.alert-success{background:rgba(34,197,94,.12);border:1px solid rgba(34,197,94,.28);color:#16803b}.alert-error{background:rgba(239,68,68,.11);border:1px solid rgba(239,68,68,.25);color:#c42b37}
.notification-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:18px}.notification-stat{display:flex;justify-content:space-between;align-items:center;padding:17px 19px;border:1px solid var(--border-color,#dbe4ef);border-radius:16px;background:var(--surface,#fff);text-decoration:none;color:inherit;transition:.2s}.notification-stat:hover,.notification-stat.is-active{transform:translateY(-2px);border-color:#6675e8;box-shadow:0 10px 25px rgba(79,99,217,.11)}.notification-stat span{color:var(--text-muted,#64748b);font-weight:700}.notification-stat strong{font-size:23px}.notification-card{padding:0;overflow:hidden}.notification-item{display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:15px;padding:19px 20px;border-bottom:1px solid var(--border-color,#e5eaf1);align-items:start;transition:.2s}.notification-item:last-child{border-bottom:0}.notification-item.is-unread{background:rgba(79,99,217,.055)}.notification-type{width:43px;height:43px;border-radius:13px;display:flex;align-items:center;justify-content:center;background:rgba(79,99,217,.12);color:#4f63d9;font-size:20px;font-weight:900}.notification-type-success{background:rgba(34,197,94,.13);color:#16803b}.notification-type-warning{background:rgba(245,158,11,.14);color:#b66e00}.notification-type-error{background:rgba(239,68,68,.12);color:#c42b37}.notification-body h3{font-size:15px;margin:0}.notification-body p{margin:7px 0 9px;color:var(--text-muted,#64748b);line-height:1.55}.notification-title-row{display:flex;align-items:center;gap:9px}.unread-dot{width:8px;height:8px;border-radius:50%;background:#5b6be8;box-shadow:0 0 0 4px rgba(91,107,232,.12)}.notification-meta{display:flex;gap:9px;align-items:center;font-size:12px;color:var(--text-muted,#64748b)}.module-pill{padding:3px 8px;border-radius:999px;background:rgba(100,116,139,.1);font-weight:700}.notification-actions{display:flex;gap:7px}.notification-actions form{margin:0}.icon-action{width:34px;height:34px;border:1px solid var(--border-color,#dbe4ef);border-radius:10px;background:var(--surface,#fff);display:flex;align-items:center;justify-content:center;text-decoration:none;color:inherit;cursor:pointer}.icon-action:hover{border-color:#6675e8;color:#4f63d9}.icon-action.danger:hover{border-color:#ef4444;color:#ef4444}.notification-empty{text-align:center;padding:65px 20px}.notification-empty>span{font-size:42px}.notification-empty h3{margin:12px 0 6px}.notification-empty p{color:var(--text-muted,#64748b);margin:0}
.settings-hero-icon{width:72px;height:72px;border-radius:22px;display:flex;align-items:center;justify-content:center;font-size:35px;background:rgba(79,99,217,.13);color:#4f63d9}.settings-layout{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.settings-card{padding:22px}.settings-card-heading{display:flex;gap:13px;align-items:flex-start;margin-bottom:20px}.settings-card-heading>span{width:43px;height:43px;border-radius:13px;background:rgba(79,99,217,.1);display:flex;align-items:center;justify-content:center;font-size:20px}.settings-card-heading h3{margin:0 0 4px}.settings-card-heading p{margin:0;color:var(--text-muted,#64748b);font-size:13px}.theme-choice-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:18px}.theme-choice input{position:absolute;opacity:0}.theme-preview{display:flex;flex-direction:column;gap:3px;padding:12px;border:2px solid var(--border-color,#dbe4ef);border-radius:14px;cursor:pointer;transition:.2s}.theme-preview i{display:block;height:42px;border-radius:8px;margin-bottom:5px;border:1px solid rgba(100,116,139,.18)}.theme-preview-light i{background:linear-gradient(90deg,#fff 32%,#eef2f7 32%)}.theme-preview-dark i{background:linear-gradient(90deg,#1e293b 32%,#0f172a 32%)}.theme-preview-auto i{background:linear-gradient(90deg,#fff 50%,#0f172a 50%)}.theme-preview small{color:var(--text-muted,#64748b);font-size:11px}.theme-choice input:checked+.theme-preview{border-color:#5b6be8;box-shadow:0 0 0 3px rgba(91,107,232,.12)}.setting-switch-row{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:15px 0;border-top:1px solid var(--border-color,#e5eaf1)}.setting-switch-row strong,.setting-switch-row small{display:block}.setting-switch-row small{margin-top:4px;color:var(--text-muted,#64748b);font-size:12px}.switch{position:relative;flex:none}.switch input{position:absolute;opacity:0}.switch i{display:block;width:46px;height:26px;border-radius:999px;background:#cbd5e1;position:relative;cursor:pointer;transition:.2s}.switch i:after{content:"";position:absolute;width:20px;height:20px;left:3px;top:3px;border-radius:50%;background:#fff;box-shadow:0 2px 5px rgba(0,0,0,.2);transition:.2s}.switch input:checked+i{background:#5b6be8}.switch input:checked+i:after{transform:translateX(20px)}.settings-account-summary{display:flex;align-items:center;gap:12px;padding:15px;border-radius:14px;background:rgba(100,116,139,.07);margin-top:14px}.settings-account-summary>div{flex:1;min-width:0}.settings-account-summary strong,.settings-account-summary small{display:block;overflow:hidden;text-overflow:ellipsis}.settings-account-summary small{color:var(--text-muted,#64748b)}.settings-save-bar{grid-column:1/-1;position:sticky;bottom:14px;z-index:4;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:15px 18px;border:1px solid var(--border-color,#dbe4ef);border-radius:16px;background:var(--surface,#fff);box-shadow:0 14px 35px rgba(15,23,42,.13)}.settings-save-bar strong,.settings-save-bar small{display:block}.settings-save-bar small{color:var(--text-muted,#64748b);margin-top:2px}
html[data-theme="dark"] .module-hero{background:linear-gradient(135deg,rgba(91,107,232,.18),rgba(30,41,59,.6))}html[data-theme="dark"] .notification-stat,html[data-theme="dark"] .icon-action,html[data-theme="dark"] .settings-save-bar{background:var(--surface,#111827)}
@media(max-width:900px){.settings-layout{grid-template-columns:1fr}.module-hero{align-items:flex-start;flex-direction:column}.notification-stats{grid-template-columns:1fr}.settings-save-bar{position:static}.settings-hero-icon{display:none}}
@media(max-width:640px){.module-hero{padding:21px}.hero-actions{width:100%}.hero-actions form,.hero-actions .button{width:100%}.notification-item{grid-template-columns:42px minmax(0,1fr)}.notification-actions{grid-column:2}.theme-choice-grid{grid-template-columns:1fr}.settings-save-bar{align-items:stretch;flex-direction:column}.settings-save-bar .button{width:100%}.settings-account-summary{flex-wrap:wrap}.settings-account-summary .button{width:100%}}

/* Etap 2B.2 - nowoczesny panel administratora użytkowników */
.admin-users-hero,.admin-edit-hero{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:26px 28px;margin-bottom:20px;border-radius:18px;background:linear-gradient(120deg,#0f172a,#ea580c 60%,#7c3aed);color:#fff;box-shadow:0 18px 45px rgba(194,65,12,.2)}.admin-users-hero h2,.admin-edit-hero h2{margin:3px 0 6px;color:#fff;font-size:28px}.admin-users-hero p,.admin-edit-hero p{margin:0;color:rgba(255,255,255,.78)}.eyebrow{font-size:11px;font-weight:800;letter-spacing:.13em;color:#fed7aa}.admin-stat-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;margin-bottom:20px}.admin-stat-card{display:flex;align-items:center;gap:13px;padding:17px;border:1px solid var(--border-color);border-radius:15px;background:var(--card-bg);box-shadow:0 8px 25px rgba(15,23,42,.05)}.admin-stat-card>span{width:44px;height:44px;display:grid;place-items:center;border-radius:13px;background:rgba(59,130,246,.1);font-size:20px}.admin-stat-card strong{display:block;font-size:23px;line-height:1}.admin-stat-card small{display:block;margin-top:5px;color:var(--muted-text)}.admin-stat-card.is-green>span{background:rgba(34,197,94,.12)}.admin-stat-card.is-red>span{background:rgba(239,68,68,.12)}.admin-stat-card.is-purple>span{background:rgba(139,92,246,.12)}.admin-stat-card.is-orange>span{background:rgba(245,158,11,.13)}.admin-users-panel{overflow:hidden}.admin-filter-bar{padding:18px;border-bottom:1px solid var(--border-color);background:rgba(148,163,184,.04)}.admin-filter-form{display:grid;grid-template-columns:minmax(220px,2fr) repeat(4,minmax(130px,1fr)) auto auto;gap:10px;align-items:center}.admin-filter-form select,.admin-filter-form input{height:42px;border:1px solid var(--border-color);border-radius:10px;background:var(--card-bg);color:var(--text-color);padding:0 11px}.admin-search{position:relative}.admin-search span{position:absolute;left:12px;top:11px}.admin-search input{width:100%;padding-left:38px}.admin-users-count{padding:14px 18px;color:var(--muted-text);font-size:13px}.admin-user-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;padding:0 18px 18px}.admin-user-card{padding:18px;border:1px solid var(--border-color);border-radius:15px;background:var(--card-bg);transition:.18s ease}.admin-user-card:hover{transform:translateY(-2px);box-shadow:0 14px 32px rgba(15,23,42,.08)}.admin-user-card.is-blocked{opacity:.75}.admin-user-card-head{display:flex;gap:13px;align-items:flex-start}.admin-user-avatar{position:relative;width:52px;height:52px;flex:0 0 auto;display:grid;place-items:center;overflow:visible;border-radius:15px;background:linear-gradient(135deg,#f97316,#7c3aed);color:#fff;font-weight:800}.admin-user-avatar img{width:100%;height:100%;object-fit:cover;border-radius:inherit}.admin-user-avatar i{position:absolute;right:-3px;bottom:-3px;width:14px;height:14px;border-radius:50%;border:3px solid var(--card-bg)}.admin-user-avatar i.online{background:#22c55e}.admin-user-avatar i.offline{background:#94a3b8}.admin-user-avatar.large{width:76px;height:76px;border-radius:20px;font-size:22px}.admin-user-title{min-width:0;flex:1}.admin-user-title h3{margin:1px 0 3px;font-size:16px}.admin-user-title p{margin:0;color:var(--muted-text);font-size:12px;overflow-wrap:anywhere}.admin-edit-icon{padding:7px;border-radius:9px;text-decoration:none;background:rgba(251,146,60,.09)}.admin-badges{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px}.badge{display:inline-flex;padding:5px 8px;border-radius:999px;font-size:10px;font-weight:800}.badge-success{color:#15803d;background:rgba(34,197,94,.12)}.badge-danger{color:#dc2626;background:rgba(239,68,68,.12)}.badge-warning{color:#b45309;background:rgba(245,158,11,.14)}.admin-user-meta{display:grid;grid-template-columns:1fr 1fr;gap:0 18px;margin-top:16px;padding-top:8px;border-top:1px solid var(--border-color)}.admin-user-meta div{display:flex;justify-content:space-between;gap:9px;padding:9px 0;border-bottom:1px solid var(--border-color)}.admin-user-meta span{color:var(--muted-text);font-size:11px}.admin-user-meta strong{font-size:11px;text-align:right;overflow-wrap:anywhere}.sep-valid{color:#16a34a}.sep-expiring{color:#d97706}.sep-expired{color:#dc2626}.sep-none{color:var(--muted-text)}.admin-user-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:14px}.admin-user-actions form{margin:0}.admin-pagination{display:flex;justify-content:space-between;align-items:center;padding:16px 18px;border-top:1px solid var(--border-color)}.admin-pagination>div{display:flex;gap:8px}.is-disabled{pointer-events:none;opacity:.45}.admin-edit-hero{justify-content:flex-start}.admin-edit-hero>a{margin-left:auto}.admin-edit-layout{display:grid;grid-template-columns:minmax(0,1fr) 350px;gap:20px;align-items:start}.admin-edit-main,.admin-edit-side{display:grid;gap:18px}.admin-role-list{display:grid;gap:9px}.admin-switch-list{display:grid;gap:10px;margin-top:18px;padding-top:16px;border-top:1px solid var(--border-color)}.admin-switch-list label{display:flex;align-items:flex-start;gap:10px}.admin-switch-list input{margin-top:4px}.admin-switch-list b,.admin-switch-list small{display:block}.admin-switch-list small{margin-top:3px;color:var(--muted-text)}.admin-account-info{padding:18px}.admin-account-info div{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--border-color)}.admin-account-info div:last-child{border-bottom:0}.admin-account-info span{color:var(--muted-text);font-size:12px}.admin-account-info strong{font-size:12px;text-align:right;overflow-wrap:anywhere}.admin-save-button{width:100%;justify-content:center;min-height:48px}
@media(max-width:1250px){.admin-stat-grid{grid-template-columns:repeat(3,1fr)}.admin-filter-form{grid-template-columns:repeat(3,1fr)}.admin-search{grid-column:1/-1}.admin-edit-layout{grid-template-columns:1fr}.admin-edit-side{grid-template-columns:repeat(2,1fr)}.admin-save-button{grid-column:1/-1}}
@media(max-width:850px){.admin-user-grid{grid-template-columns:1fr}.admin-stat-grid{grid-template-columns:repeat(2,1fr)}.admin-filter-form{grid-template-columns:1fr 1fr}.admin-search{grid-column:1/-1}.admin-edit-side{grid-template-columns:1fr}}
@media(max-width:560px){.admin-users-hero,.admin-edit-hero{align-items:flex-start;flex-direction:column;padding:20px}.admin-edit-hero>a{margin-left:0}.admin-stat-grid{grid-template-columns:1fr}.admin-filter-form{grid-template-columns:1fr}.admin-user-grid{padding:0 12px 12px}.admin-user-meta{grid-template-columns:1fr}.admin-user-actions{justify-content:stretch}.admin-user-actions>*{flex:1}.admin-user-actions .button{width:100%;justify-content:center}.admin-pagination{align-items:flex-start;flex-direction:column;gap:10px}}


/* UI Polish: Role, Uprawnienia i Projekty */
.ui-polish{max-width:1600px;margin:0 auto}.ui-polish>.d-flex:first-child{padding:26px 28px;margin-bottom:20px!important;border-radius:18px;background:linear-gradient(120deg,#0f172a,#ea580c 60%,#7c3aed);color:#fff;box-shadow:0 18px 45px rgba(194,65,12,.2)}.ui-polish>.d-flex:first-child h1{color:#fff!important;font-size:28px;margin:0 0 6px!important}.ui-polish>.d-flex:first-child p{color:rgba(255,255,255,.78)!important}.ui-polish .ui-card{border:1px solid var(--border-color)!important;border-radius:16px!important;background:var(--card-bg)!important;box-shadow:0 10px 30px rgba(15,23,42,.06)!important;overflow:hidden}.ui-polish .card-body{padding:18px}.ui-polish .nav-pills{display:flex;flex-wrap:wrap;gap:8px}.ui-polish .nav-link{display:inline-flex;align-items:center;gap:7px;padding:10px 14px;border-radius:10px;text-decoration:none;color:var(--muted-text);font-weight:700;transition:.18s}.ui-polish .nav-link:hover{background:rgba(251,146,60,.08);color:#f97316}.ui-polish .nav-link.active{background:linear-gradient(135deg,#f97316,#5b21b6);color:#fff;box-shadow:0 8px 18px rgba(249,115,22,.22)}.ui-polish form.row{display:grid!important;grid-template-columns:minmax(240px,2fr) repeat(2,minmax(140px,1fr)) auto;gap:12px!important;align-items:end}.ui-polish form.row>div{width:auto!important;max-width:none!important}.ui-polish .form-label{display:block;margin-bottom:6px;font-size:12px;font-weight:800;color:var(--muted-text);letter-spacing:.02em}.ui-polish .form-control,.ui-polish .form-select{width:100%;min-height:43px;padding:9px 12px;border:1px solid var(--border-color);border-radius:10px;background:var(--card-bg);color:var(--text-color);outline:none;transition:.18s}.ui-polish .form-control:focus,.ui-polish .form-select:focus{border-color:#fb923c;box-shadow:0 0 0 3px rgba(251,146,60,.12)}.ui-polish textarea.form-control{min-height:120px}.ui-polish .btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:40px;padding:9px 14px;border-radius:10px;border:1px solid transparent;text-decoration:none;font-weight:800;cursor:pointer;transition:.18s}.ui-polish .btn:hover{transform:translateY(-1px)}.ui-polish .btn-primary,.ui-polish .ui-primary{background:linear-gradient(135deg,#f97316,#5b21b6)!important;color:#fff!important;box-shadow:0 8px 18px rgba(37,99,235,.18)}.ui-polish .btn-outline-primary,.ui-polish .ui-outline{border-color:#fdba74!important;color:#f97316!important;background:rgba(251,146,60,.06)!important}.ui-polish .btn-outline-secondary{border-color:var(--border-color)!important;color:var(--text-color)!important;background:var(--card-bg)!important}.ui-polish .btn-outline-danger{border-color:#fecaca!important;color:#dc2626!important;background:rgba(239,68,68,.05)!important}.ui-polish .btn-sm{min-height:34px;padding:6px 10px;font-size:12px}.ui-polish .table-responsive{overflow:auto}.ui-polish table{width:100%;border-collapse:separate;border-spacing:0}.ui-polish thead th{position:sticky;top:0;z-index:1;padding:13px 15px;background:rgba(148,163,184,.10)!important;color:var(--muted-text)!important;font-size:11px;text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid var(--border-color)!important}.ui-polish tbody td{padding:14px 15px;border-bottom:1px solid var(--border-color);color:var(--text-color)}.ui-polish tbody tr{transition:.15s}.ui-polish tbody tr:hover{background:rgba(251,146,60,.035)}.ui-polish code{padding:5px 8px;border-radius:8px;background:rgba(251,146,60,.09);color:#f97316;font-weight:700}.ui-polish .badge{display:inline-flex;align-items:center;padding:5px 9px;border-radius:999px;font-size:10px;font-weight:800}.ui-polish .bg-success{background:rgba(34,197,94,.13)!important;color:#15803d!important}.ui-polish .bg-secondary{background:rgba(100,116,139,.13)!important;color:#475569!important}.ui-polish .bg-dark{background:rgba(15,23,42,.12)!important;color:var(--text-color)!important}.ui-polish .bg-light{background:rgba(148,163,184,.1)!important;color:var(--text-color)!important}.ui-polish .card-footer{padding:14px 18px;border-top:1px solid var(--border-color);background:transparent!important}.ui-polish .pagination{display:flex;flex-wrap:wrap;gap:6px;list-style:none;padding:0}.ui-polish .page-link{display:grid;place-items:center;min-width:36px;height:36px;padding:0 10px;border:1px solid var(--border-color);border-radius:9px;background:var(--card-bg);color:var(--text-color);text-decoration:none}.ui-polish .page-item.active .page-link{background:#f97316;color:#fff;border-color:#f97316}.ui-polish .row.g-3.mb-4{display:grid!important;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px!important}.ui-polish .row.g-3.mb-4>div{width:auto!important;max-width:none!important}.ui-polish .row.g-3.mb-4 .card{border:1px solid var(--border-color);border-radius:14px;background:var(--card-bg);transition:.18s}.ui-polish .row.g-3.mb-4 .card:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(15,23,42,.08)}.ui-polish .alert{border-radius:12px;padding:12px 15px}.ui-polish .invalid-feedback{margin-top:5px;color:#dc2626;font-size:12px}.ui-polish .is-invalid{border-color:#ef4444!important}.ui-polish .form-check{display:flex;gap:8px;align-items:flex-start}.ui-polish .form-check-input{margin-top:4px}.ui-polish .d-flex.justify-content-between.gap-3{padding-top:16px;border-top:1px solid var(--border-color)}
[data-theme="dark"] .ui-polish thead th{background:#111827!important;color:#cbd5e1!important}[data-theme="dark"] .ui-polish .ui-card,[data-theme="dark"] .ui-polish .form-control,[data-theme="dark"] .ui-polish .form-select,[data-theme="dark"] .ui-polish .page-link{background:#111827!important;border-color:#263246!important;color:#f8fafc!important}
@media(max-width:1050px){.ui-polish form.row{grid-template-columns:1fr 1fr}.ui-polish form.row>div:first-child{grid-column:1/-1}.ui-polish .row.g-3.mb-4{grid-template-columns:repeat(3,1fr)}}@media(max-width:700px){.ui-polish>.d-flex:first-child{align-items:flex-start!important;flex-direction:column;padding:20px}.ui-polish form.row{grid-template-columns:1fr}.ui-polish form.row>div:first-child{grid-column:auto}.ui-polish .row.g-3.mb-4{grid-template-columns:1fr 1fr}.ui-polish .table-responsive{margin:0 -18px}.ui-polish tbody td,.ui-polish thead th{padding:11px 12px;white-space:nowrap}}@media(max-width:440px){.ui-polish .row.g-3.mb-4{grid-template-columns:1fr}}

/* =========================================================
   Panel administratora
   ========================================================= */
.admin-top-button {
    min-height: 42px;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 0 14px;
    border: 1px solid var(--border);
    border-radius: 10px;
    background: var(--surface);
    color: var(--text);
    font-size: 13px;
    font-weight: 700;
    text-decoration: none;
    white-space: nowrap;
    transition: 0.18s ease;
}

.admin-top-button:hover,
.admin-top-button.is-active {
    border-color: var(--primary);
    background: rgba(37, 99, 235, 0.10);
    color: var(--primary);
}

.admin-top-button-icon {
    font-size: 16px;
}

.admin-hero {
    position: relative;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 32px;
    margin-bottom: 22px;
    padding: 30px;
    border-radius: 20px;
    background: linear-gradient(125deg, #0f172a 0%, #1e3a8a 58%, #f97316 100%);
    color: #ffffff;
    box-shadow: 0 20px 50px rgba(15, 23, 42, 0.22);
}

.admin-hero::after {
    position: absolute;
    right: -70px;
    bottom: -100px;
    width: 260px;
    height: 260px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.08);
    content: '';
}

.admin-hero-copy {
    position: relative;
    z-index: 1;
    max-width: 780px;
}

.admin-eyebrow,
.admin-section-kicker {
    display: block;
    margin-bottom: 7px;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.13em;
}

.admin-eyebrow {
    color: #fed7aa;
}

.admin-hero h2 {
    margin: 0;
    font-size: clamp(26px, 4vw, 38px);
}

.admin-hero p {
    max-width: 720px;
    margin: 10px 0 0;
    color: #ffedd5;
    line-height: 1.6;
}

.admin-hero-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 18px;
}

.admin-hero-meta span {
    padding: 7px 11px;
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.10);
    font-size: 12px;
}

.admin-hero-mark {
    position: relative;
    z-index: 1;
    display: grid;
    width: 100px;
    height: 100px;
    flex: 0 0 100px;
    place-items: center;
    border: 1px solid rgba(255, 255, 255, 0.22);
    border-radius: 26px;
    background: rgba(255, 255, 255, 0.12);
    font-size: 44px;
}

.admin-stat-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
    margin-bottom: 26px;
}

.admin-stat-card {
    display: flex;
    align-items: center;
    gap: 14px;
    min-width: 0;
    padding: 18px;
    border: 1px solid var(--border);
    border-radius: 16px;
    background: var(--surface);
    box-shadow: var(--shadow-sm);
}

.admin-stat-icon {
    display: grid;
    width: 48px;
    height: 48px;
    flex: 0 0 48px;
    place-items: center;
    border-radius: 14px;
    background: rgba(37, 99, 235, 0.10);
    font-size: 22px;
}

.admin-stat-card strong,
.admin-stat-card span,
.admin-stat-card small {
    display: block;
}

.admin-stat-card strong {
    color: var(--text);
    font-size: 24px;
    line-height: 1;
}

.admin-stat-card div > span {
    margin-top: 5px;
    color: var(--text);
    font-size: 13px;
    font-weight: 700;
}

.admin-stat-card small {
    margin-top: 3px;
    color: var(--text-secondary);
    font-size: 11px;
}

.admin-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 320px;
    gap: 22px;
    align-items: start;
}

.admin-main-column,
.admin-side-column {
    min-width: 0;
}

.admin-side-column {
    display: grid;
    gap: 16px;
}

.admin-section-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 14px;
}

.admin-section-heading h3,
.admin-side-heading h3 {
    margin: 0;
    color: var(--text);
}

.admin-section-kicker {
    color: var(--primary);
}

.admin-section-note {
    max-width: 320px;
    color: var(--text-secondary);
    font-size: 12px;
    text-align: right;
}

.admin-section-spaced {
    margin-top: 28px;
}

.admin-module-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.admin-module-card {
    display: grid;
    grid-template-columns: 48px minmax(0, 1fr) auto;
    align-items: center;
    gap: 14px;
    min-height: 104px;
    padding: 18px;
    border: 1px solid var(--border);
    border-radius: 16px;
    background: var(--surface);
    color: var(--text);
    text-decoration: none;
    box-shadow: var(--shadow-sm);
    transition: 0.18s ease;
}

.admin-module-card:hover {
    transform: translateY(-2px);
    border-color: var(--primary);
    box-shadow: var(--shadow-md);
}

.admin-module-icon {
    display: grid;
    width: 48px;
    height: 48px;
    place-items: center;
    border-radius: 14px;
    background: var(--surface-secondary);
    font-size: 22px;
}

.admin-module-content strong,
.admin-module-content small {
    display: block;
}

.admin-module-content strong {
    font-size: 15px;
}

.admin-module-content small {
    margin-top: 5px;
    color: var(--text-secondary);
    font-size: 12px;
    line-height: 1.45;
}

.admin-module-arrow {
    color: var(--primary);
    font-size: 20px;
}

.admin-project-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
}

.admin-project-grid > a,
.admin-project-grid > div {
    display: flex;
    min-height: 126px;
    flex-direction: column;
    justify-content: center;
    padding: 17px;
    border: 1px solid var(--border);
    border-radius: 15px;
    background: var(--surface);
    color: var(--text);
    text-decoration: none;
    box-shadow: var(--shadow-sm);
}

.admin-project-grid > a:hover {
    border-color: var(--primary);
}

.admin-project-grid span,
.admin-project-grid strong,
.admin-project-grid small {
    display: block;
}

.admin-project-grid span {
    font-size: 22px;
}

.admin-project-grid strong {
    margin-top: 9px;
    font-size: 24px;
}

.admin-project-grid small {
    margin-top: 5px;
    color: var(--text-secondary);
    font-size: 11px;
}

.admin-activity-panel,
.admin-side-card {
    border: 1px solid var(--border);
    border-radius: 16px;
    background: var(--surface);
    box-shadow: var(--shadow-sm);
}

.admin-activity-panel {
    overflow: hidden;
}

.admin-activity-row {
    display: grid;
    grid-template-columns: 10px minmax(0, 1fr) auto;
    align-items: center;
    gap: 12px;
    padding: 14px 17px;
    border-bottom: 1px solid var(--border);
}

.admin-activity-row:last-child {
    border-bottom: 0;
}

.admin-activity-level {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--text-muted);
}

.admin-activity-level.is-success { background: var(--success); }
.admin-activity-level.is-warning { background: var(--warning); }
.admin-activity-level.is-error { background: var(--danger); }
.admin-activity-level.is-info { background: var(--primary); }

.admin-activity-copy strong,
.admin-activity-copy small {
    display: block;
}

.admin-activity-copy strong {
    font-size: 13px;
}

.admin-activity-copy small,
.admin-activity-row time {
    margin-top: 4px;
    color: var(--text-secondary);
    font-size: 11px;
}

.admin-activity-row time {
    white-space: nowrap;
}

.admin-empty {
    margin: 0;
    padding: 22px;
    color: var(--text-secondary);
    text-align: center;
}

.admin-side-card {
    padding: 18px;
}

.admin-side-heading {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 14px;
}

.admin-side-heading > span {
    font-size: 20px;
}

.admin-quick-actions {
    display: grid;
    gap: 8px;
}

.admin-quick-actions a {
    padding: 11px 12px;
    border-radius: 10px;
    background: var(--surface-secondary);
    color: var(--text);
    font-size: 13px;
    font-weight: 700;
    text-decoration: none;
}

.admin-quick-actions a:hover {
    background: rgba(37, 99, 235, 0.10);
    color: var(--primary);
}

.admin-health-list {
    display: grid;
    gap: 3px;
}

.admin-health-list > div {
    display: grid;
    grid-template-columns: 10px minmax(0, 1fr) auto;
    align-items: center;
    gap: 9px;
    padding: 8px 0;
    border-bottom: 1px solid var(--border);
    font-size: 12px;
}

.admin-health-list > div:last-child {
    border-bottom: 0;
}

.admin-health-list small {
    color: var(--text-secondary);
}

.admin-health-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
}

.admin-health-dot.is-ok { background: var(--success); }
.admin-health-dot.is-error { background: var(--danger); }

.admin-system-list {
    margin: 0;
}

.admin-system-list > div {
    display: flex;
    justify-content: space-between;
    gap: 14px;
    padding: 9px 0;
    border-bottom: 1px solid var(--border);
}

.admin-system-list > div:last-child {
    border-bottom: 0;
}

.admin-system-list dt {
    color: var(--text-secondary);
    font-size: 12px;
}

.admin-system-list dd {
    max-width: 160px;
    margin: 0;
    overflow: hidden;
    color: var(--text);
    font-size: 12px;
    font-weight: 700;
    text-overflow: ellipsis;
    white-space: nowrap;
}

@media (max-width: 1180px) {
    .admin-stat-grid,
    .admin-project-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .admin-layout {
        grid-template-columns: 1fr;
    }

    .admin-side-column {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 860px) {
    .admin-top-button-label {
        display: none;
    }

    .admin-top-button {
        width: 42px;
        justify-content: center;
        padding: 0;
    }

    .admin-module-grid,
    .admin-side-column {
        grid-template-columns: 1fr;
    }

    .admin-hero-mark {
        display: none;
    }
}

@media (max-width: 620px) {
    .admin-hero {
        padding: 22px;
    }

    .admin-stat-grid,
    .admin-project-grid {
        grid-template-columns: 1fr;
    }

    .admin-section-heading {
        align-items: flex-start;
        flex-direction: column;
    }

    .admin-section-note {
        text-align: left;
    }

    .admin-activity-row {
        grid-template-columns: 10px minmax(0, 1fr);
    }

    .admin-activity-row time {
        grid-column: 2;
    }
}
