:root{ --bg-page: #ecece8; --bg-grid: radial-gradient(circle at 10% 10%, rgba(159, 115, 84, 0.08), transparent 24%), radial-gradient(circle at 85% 14%, rgba(19, 24, 28, 0.05), transparent 18%); --surface-0: rgba(250, 250, 247, 0.82); --surface-1: #f8f8f5; --surface-2: #f1f1ed; --surface-3: #dfdfd8; --surface-4: #d0d0c8; --text-main: #111417; --text-soft: #5e666e; --text-faint: #7b848d; --border-color: rgba(17, 20, 23, 0.12); --border-strong: rgba(17, 20, 23, 0.2); --primary: #101316; --primary-soft: #49535c; --accent: #8d593a; --accent-2: #0c6a50; --blue: #285c9d; --success: #0d8a63; --warning: #b67a21; --danger: #c24646; --shadow-lg: 0 24px 60px rgba(17, 20, 23, 0.08); --shadow-md: 0 12px 30px rgba(17, 20, 23, 0.05); --radius-xl: 28px; --radius-lg: 20px; --radius-md: 14px; --sidebar-width: 260px; --sidebar-collapsed-width: 92px; --topbar-height: 76px; --font-body: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; --font-title: "Roboto Mono", "IBM Plex Mono", "SFMono-Regular", Consolas, monospace; --primary-contrast: #ffffff; } body.dark-theme{ --bg-page: #17212b; --bg-grid: linear-gradient(180deg, rgba(91, 119, 145, 0.05), transparent 32%), radial-gradient(circle at 18% 12%, rgba(63, 130, 196, 0.08), transparent 18%); --surface-0: rgba(29, 39, 51, 0.9); --surface-1: #1d2733; --surface-2: #222d3a; --surface-3: #2d3947; --surface-4: #3a4858; --text-main: #dae4ec; --text-soft: #93a5b6; --text-faint: #708295; --border-color: rgba(146, 170, 194, 0.16); --border-strong: rgba(146, 170, 194, 0.25); --primary: #edf2f7; --primary-soft: #bccada; --accent: #4b90d9; --accent-2: #4fb593; --blue: #4b90d9; --success: #4fb593; --warning: #f0b45b; --danger: #e37a7a; --shadow-lg: 0 22px 48px rgba(0, 0, 0, 0.24); --shadow-md: 0 10px 24px rgba(0, 0, 0, 0.18); --primary-contrast: #101316; } *{ box-sizing: border-box; } html, body{ min-height: 100%; font-size: 0.90rem; margin: 0; color: var(--text-main); font-family: var(--font-body); background: var(--bg-page); background-image: var(--bg-grid); -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } body::before{ content: ""; position: fixed; inset: 0; pointer-events: none; background-image: linear-gradient(rgba(17, 20, 23, 0.018) 1px, transparent 1px), linear-gradient(90deg, rgba(17, 20, 23, 0.018) 1px, transparent 1px); background-size: 28px 28px; opacity: 0.14; } body.dark-theme::before{ background-image: linear-gradient(rgba(218, 228, 236, 0.02) 1px, transparent 1px), linear-gradient(90deg, rgba(218, 228, 236, 0.02) 1px, transparent 1px); opacity: 0.15; } body, .p-component, .p-inputtext, .p-button, .p-card, .p-tag, .p-table{ font-family: var(--font-body); } pre, code, .page-header__title, .topbar__headline, .sidebar-brand__text h2, .stat-card__value, .stat-card__label, .section-card__title, .table-primary{ font-family: var(--font-title); } img{ max-width: 100%; } a{ color: inherit; text-decoration: none; } small{ color: var(--text-soft); } .layout-shell{ min-height: 100vh; padding-left: var(--sidebar-width); transition: padding-left 0.2s ease; } .layout-shell--collapsed{ padding-left: var(--sidebar-collapsed-width); } .layout-sidebar{ position: fixed; left: 0; top: 0; bottom: 0; width: var(--sidebar-width); background: linear-gradient(180deg, #151d26 0%, #19222d 100%); border-right: 1px solid rgba(255, 255, 255, 0.08); color: #d7e1eb; padding: 1.15rem 1rem; z-index: 100; transition: width 0.2s ease, transform 0.2s ease; overflow: hidden; } .layout-shell--collapsed .layout-sidebar{ width: var(--sidebar-collapsed-width); } .layout-main{ min-height: 100vh; display: flex; flex-direction: column; } .layout-content{ flex: 1; padding: 0 2rem 2rem; } .layout-footer{ display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 0.85rem 1.2rem; padding: 0 2rem 1.5rem; color: var(--text-faint); font-size: 0.74rem; letter-spacing: 0.14em; text-transform: uppercase; } .layout-overlay{ position: fixed; inset: 0; background: rgba(0, 0, 0, 0.4); opacity: 0; visibility: hidden; z-index: 95; transition: opacity 0.2s ease; } .layout-overlay.is-visible{ opacity: 1; visibility: visible; } .topbar{ min-height: var(--topbar-height); margin: 0; padding: 1rem 2rem; display: flex; justify-content: space-between; align-items: center; gap: 1rem; border-bottom: 1px solid var(--border-color); background: rgba(255, 255, 255, 0.18); backdrop-filter: blur(10px); position: sticky; top: 0; z-index: 90; } body.dark-theme .topbar{ background: rgba(23, 33, 43, 0.82); } .topbar__left, .topbar__right, .header-actions-row, .table-actions, .inline-tags, .filters-actions, .dialog-actions, .sidebar-brand, .topbar__user{ display: flex; align-items: center; gap: 0.8rem; } .topbar__left, .topbar__right, .header-actions-row, .table-actions, .inline-tags, .filters-actions, .dialog-actions, .topbar__caption, .page-header__eyebrow, .sidebar-section__label, .stat-card__label, .layout-footer span{ font-size: 0.72rem; letter-spacing: 0.16em; text-transform: uppercase; } .topbar__caption, .page-header__eyebrow, .sidebar-section__label, .layout-footer, .stat-card__hint, .section-card__subtitle, .page-header__subtitle, .metric-tile span, .table-secondary, .form-field label, .topbar__user-meta small{ color: var(--text-soft); } .topbar__headline{ font-size: 1.02rem; letter-spacing: 0.12em; text-transform: uppercase; } .topbar__user-meta{ display: flex; flex-direction: column; line-height: 1.2; } .topbar__logout-btn.p-button{ min-width: auto; } .sidebar-brand{ align-items: center; padding-bottom: 1.25rem; margin-bottom: 1rem; border-bottom: 1px solid rgba(255, 255, 255, 0.08); } .sidebar-brand__logo{ width: 42px; height: 42px; border: 1px solid rgba(255, 255, 255, 0.24); border-radius: 12px; display: grid; place-items: center; font-family: var(--font-title); font-size: 0.86rem; letter-spacing: 0.12em; color: #fff; } .sidebar-brand__text h2, .sidebar-brand__text p, .sidebar-section__label, .page-header__title, .page-header__subtitle, .section-card__title, .section-card__subtitle, .stat-card__label, .stat-card__value, .stat-card__hint, .metric-tile span, .form-field label{ margin: 0; } .sidebar-brand__text h2{ font-size: 1.02rem; color: #fff; text-transform: lowercase; letter-spacing: 0.18em; } .sidebar-brand__text p, .sidebar-section__label{ color: rgba(215, 225, 235, 0.64); } .sidebar-section{ padding: 0.25rem 0 0.5rem; } .sidebar-nav{ display: grid; gap: 0.35rem; } .sidebar-nav__item{ display: flex; align-items: center; gap: 0.85rem; min-height: 44px; padding: 0.75rem 0.85rem; border-radius: 14px; color: rgba(230, 238, 245, 0.84); border: 1px solid transparent; transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease; } .sidebar-nav__item:hover{ background: rgba(255, 255, 255, 0.06); border-color: rgba(255, 255, 255, 0.08); } .sidebar-nav__item.is-active{ background: rgba(75, 144, 217, 0.18); border-color: rgba(75, 144, 217, 0.42); color: #fff; } .sidebar-nav__item i{ font-size: 1rem; width: 1rem; } .page-header{ display: flex; justify-content: space-between; align-items: flex-end; gap: 1rem; padding: 2rem 0 1.25rem; border-bottom: 1px solid var(--border-color); margin-bottom: 1.5rem; } .page-header__title{ font-size: clamp(2rem, 4vw, 3.2rem); line-height: 1; letter-spacing: 0.06em; text-transform: uppercase; } .page-header__subtitle{ max-width: 56rem; margin-top: 0.9rem; font-size: 0.98rem; line-height: 1.7; } .stats-grid, .dashboard-grid, .metric-grid-2, .form-grid-2{ display: grid; gap: 1rem; } .stats-grid{ grid-template-columns: repeat(4, minmax(0, 1fr)); margin-bottom: 1rem; } .compact-grid{ margin-bottom: 1rem; } .dashboard-grid{ grid-template-columns: repeat(2, minmax(0, 1fr)); } .metric-grid-2, .form-grid-2{ grid-template-columns: repeat(2, minmax(0, 1fr)); } .section-card.p-card, .stat-card.p-card{ border-radius: 20px; border: 1px solid var(--border-color); background: linear-gradient(180deg, var(--surface-1) 0%, var(--surface-0) 100%); box-shadow: var(--shadow-md); overflow: hidden; } .section-card .p-card-body, .stat-card .p-card-body{ padding: 0; } .section-card .p-card-content, .stat-card .p-card-content{ padding: 1.2rem 1.25rem; } .section-card__header{ display: flex; justify-content: space-between; gap: 1rem; align-items: flex-start; padding-bottom: 1rem; margin-bottom: 1rem; border-bottom: 1px solid var(--border-color); } .section-card__title{ font-size: 1.05rem; letter-spacing: 0.08em; text-transform: uppercase; } .section-card__subtitle{ margin-top: 0.35rem; line-height: 1.6; } .stat-card{ position: relative; } .stat-card::before{ content: ""; position: absolute; left: 0; right: 0; top: 0; height: 4px; background: linear-gradient(90deg, var(--accent), var(--blue)); } .stat-card__row{ display: flex; justify-content: space-between; gap: 1rem; align-items: flex-start; margin-bottom: 1rem; } .stat-card__label{ margin-bottom: 0.55rem; } .stat-card__value{ font-size: clamp(1.6rem, 3vw, 2.1rem); line-height: 1; letter-spacing: 0.04em; } .stat-card__hint{ margin-top: 0.6rem; font-size: 0.92rem; } .stat-card__icon{ width: 48px; height: 48px; border-radius: 14px; display: grid; place-items: center; border: 1px solid var(--border-color); background: var(--surface-2); font-size: 1.05rem; } .icon-blue{ color: var(--blue); } .icon-emerald{ color: var(--success); } .icon-amber{ color: var(--warning); } .icon-violet{ color: var(--accent); } body.dark-theme .settings-actions{ display: flex; flex-direction: column; } body.dark-theme .metric-tile, .empty-state{ justify-content: space-between; } .metric-grid-2{ margin-top: 0.2rem; } .metric-tile{ padding: 1rem; border: 1px solid var(--border-color); border-radius: 16px; background: var(--surface-2); } .metric-tile strong{ font-family: var(--font-title); font-size: 1rem; letter-spacing: 0.06em; } .table-primary{ font-size: 0.96rem; letter-spacing: 0.04em; } .code-preview{ margin: 0; padding: 1rem; border-radius: 16px; border: 1px solid rgba(255, 255, 255, 0.06); background: #17212b; color: #dae4ec; overflow: auto; line-height: 1.6; font-size: 0.86rem; } .form-field{ display: flex; flex-direction: column; gap: 0.5rem; } .form-field label{ font-size: 0.8rem; letter-spacing: 0.12em; text-transform: uppercase; } .form-field--full{ grid-column: 1 / -1; } .form-error, .form-success{ font-size: 0.88rem; } .form-error{ color: var(--danger); } .form-success{ color: var(--success); } .p-button{ border-radius: 12px; border-width: 1px; font-size: 0.82rem; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; padding: 0.8rem 1rem; background: var(--primary); border-color: var(--primary); color: #fff; box-shadow: none; } .p-button:not(.p-disabled):hover{ filter: brightness(1.06); } .p-button.p-button-secondary, .p-button.p-button-help, .p-button.p-button-outlined, .p-button.p-button-text{ background: color-mix(in srgb, var(--surface-1) 88%, white 12%); color: var(--text-main); border-color: color-mix(in srgb, var(--border-strong) 86%, transparent); } .p-button.p-button-secondary:not(.p-disabled):hover, .p-button.p-button-help:not(.p-disabled):hover, .p-button.p-button-outlined:not(.p-disabled):hover{ background: color-mix(in srgb, var(--surface-2) 82%, white 18%); border-color: color-mix(in srgb, var(--border-strong) 96%, transparent); } .p-button.p-button-text{ border-color: transparent; background: transparent; } body.dark-theme .p-button.p-button-secondary, body.dark-theme .p-button.p-button-help, body.dark-theme .p-button.p-button-outlined, body.dark-theme .p-button.p-button-text{ color: var(--text-main); } body.dark-theme .p-button.p-button-secondary, body.dark-theme .p-button.p-button-help, body.dark-theme .p-button.p-button-outlined{ background: color-mix(in srgb, var(--surface-1) 90%, white 10%); border-color: rgba(146, 170, 194, 0.22); } body.dark-theme .p-button.p-button-secondary:not(.p-disabled):hover, body.dark-theme .p-button.p-button-help:not(.p-disabled):hover, body.dark-theme .p-button.p-button-outlined:not(.p-disabled):hover{ background: color-mix(in srgb, var(--surface-1) 84%, white 16%); border-color: rgba(146, 170, 194, 0.34); } .p-button.p-button-danger{ background: transparent; border-color: rgba(194, 70, 70, 0.5); color: var(--danger); } .p-inputtext, .p-inputtextarea, textarea.p-inputtextarea{ width: 100%; border-radius: 12px; border: 1px solid var(--border-strong); background: rgba(255, 255, 255, 0.5); color: var(--text-main); padding: 0.82rem 0.9rem; box-shadow: none; } body.dark-theme .p-inputtext, body.dark-theme .p-inputtextarea, body.dark-theme textarea.p-inputtextarea{ background: rgba(255, 255, 255, 0.03); } .p-inputtext:enabled:focus, .p-inputtextarea:enabled:focus, textarea.p-inputtextarea:enabled:focus{ border-color: var(--accent); box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 18%, transparent); } .p-input-icon-left{ position: relative; display: block; } .p-input-icon-left > i{ left: 0.9rem; color: var(--text-soft); } .p-input-icon-left > .p-inputtext{ padding-left: 2.45rem; } .p-tag{ border-radius: 999px; font-size: 0.6rem; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; line-height: 1.15; padding: 0.28rem 0.72rem; min-width: max-content; max-width: 100%; } .app-table{ border: 1px solid var(--border-color); border-radius: 18px; overflow: hidden; } .app-table .p-datatable-wrapper{ border-radius: 18px; } .app-table .p-datatable-table{ min-width: 100%; } .app-table .p-datatable-thead > tr > th{ background: var(--surface-2); color: var(--text-soft); border-bottom: 1px solid var(--border-color); font-size: 0.76rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; padding: 0.95rem 1rem; } .app-table .p-datatable-tbody > tr{ background: transparent; } .app-table .p-datatable-tbody > tr > td{ padding: 0.95rem 1rem; border-bottom: 1px solid var(--border-color); } .app-table .p-datatable-tbody > tr:hover > td{ background: rgba(255, 255, 255, 0.35); } body.dark-theme .app-table .p-datatable-thead > tr > th{ background: #202a36; } body.dark-theme .app-table .p-datatable-tbody > tr:hover > td{ background: rgba(255, 255, 255, 0.03); } .table-secondary{ display: inline-block; margin-top: 0.3rem; } .p-paginator{ border-top: 1px solid var(--border-color); background: var(--surface-1); } .p-component-overlay{ backdrop-filter: blur(10px); } .p-avatar{ background: var(--primary); color: #fff; font-family: var(--font-title); } .p-dialog{ border-radius: 20px; overflow: hidden; border: 1px solid var(--border-color); } .p-dialog .p-dialog-header, .p-dialog .p-dialog-content, .p-dialog .p-dialog-footer{ background: var(--surface-1); color: var(--text-main); } .p-dialog .p-dialog-header{ border-bottom: 1px solid var(--border-color); } .p-dialog .p-dialog-footer{ border-top: 1px solid var(--border-color); } .empty-state, .compact-empty{ padding: 1.2rem; border: 1px dashed var(--border-strong); border-radius: 14px; color: var(--text-soft); background: var(--surface-2); } .settings-actions{ justify-content: flex-end; grid-column: 1 / -1; } @media (max-width: 1300px) { .stats-grid{ grid-template-columns: repeat(2, minmax(0, 1fr)); } .dashboard-grid{ grid-template-columns: 1fr; } } @media (max-width: 991px) { .layout-shell, .layout-shell--collapsed{ padding-left: 0; } .layout-sidebar{ transform: translateX(-100%); width: min(88vw, var(--sidebar-width)); } .layout-sidebar.is-open{ transform: translateX(0); } .topbar, .layout-content, .layout-footer{ padding-left: 1rem; padding-right: 1rem; } .page-header{ align-items: flex-start; } } @media (max-width: 720px) { .page-header, .topbar, .stats-grid, .metric-grid-2, .form-grid-2{ grid-template-columns: 1fr; } .topbar, .page-header{ flex-direction: column; align-items: flex-start; } .topbar__right{ width: 100%; } } .layout-content{ padding-bottom: 2.5rem; } .topbar{ min-height: 72px; padding-top: 0.9rem; padding-bottom: 0.9rem; background: rgba(249, 249, 246, 0.86); border-bottom-color: rgba(17, 20, 23, 0.1); } body.dark-theme .topbar{ background: rgba(21, 29, 38, 0.92); border-bottom-color: rgba(146, 170, 194, 0.12); } .topbar__caption{ letter-spacing: 0.18em; } .topbar__headline{ font-family: var(--font-title); font-size: 1rem; letter-spacing: 0.1em; } .topbar__icon-btn.p-button, .topbar__logout-btn.p-button{ min-width: 2.75rem; height: 2.75rem; } .topbar__icon-btn.p-button{ border: 1px solid var(--border-color); background: var(--surface-1); } body.dark-theme .topbar__icon-btn.p-button{ background: rgba(255, 255, 255, 0.03); } .topbar__logout-btn.p-button{ padding-inline: 1rem; } .sidebar-brand__logo{ border-radius: 12px; background: rgba(255, 255, 255, 0.04); } .sidebar-brand__text h2{ font-size: 0.96rem; text-transform: uppercase; } .sidebar-brand__text p{ color: rgba(215, 225, 235, 0.64); } .p-button{ min-height: 2.8rem; border-radius: 10px; border-width: 1px; letter-spacing: 0.12em; transition: transform 0.12s ease, filter 0.12s ease, border-color 0.12s ease, background-color 0.12s ease; } .p-button:not(.p-disabled):hover{ transform: translateY(-1px); } .p-button.p-button-secondary, .p-button.p-button-help, .p-button.p-button-outlined, .p-button.p-button-text{ background: var(--surface-1); } body.dark-theme .p-button.p-button-secondary, body.dark-theme .p-button.p-button-help, body.dark-theme .p-button.p-button-outlined, body.dark-theme .p-button.p-button-text{ background: rgba(255, 255, 255, 0.03); } .p-button.p-button-text{ background: transparent; } .p-button.table-action-btn{ width: 2.35rem; min-width: 2.35rem; height: 2.35rem; padding: 0; border-radius: 10px; } .header-number-input{ max-width: 6rem; } .settings-toggle-grid{ display: grid; gap: 0.85rem; margin-bottom: 1rem; } .settings-toggle{ display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 0.95rem 1rem; border: 1px solid var(--border-color); border-radius: 16px; background: color-mix(in srgb, var(--surface-1) 86%, transparent); } .settings-toggle strong, .settings-toggle small{ display: block; } .settings-toggle strong{ font-family: var(--font-title); font-size: 0.9rem; letter-spacing: 0.06em; text-transform: uppercase; } .settings-toggle small{ margin-top: 0.3rem; color: var(--text-soft); line-height: 1.5; } @media (max-width: 991px) { .topbar__right{ justify-content: space-between; } } body.dark-theme{ --surface-0: rgba(28, 38, 49, 0.94); --surface-1: #1c2631; --surface-2: #202b36; --surface-3: #2a3642; --surface-4: #364353; --border-color: rgba(160, 183, 206, 0.12); --border-strong: rgba(160, 183, 206, 0.18); --text-main: #d6e0e8; --text-soft: #8ea1b2; --text-faint: #748696; --shadow-lg: 0 18px 38px rgba(0, 0, 0, 0.18); --shadow-md: 0 8px 20px rgba(0, 0, 0, 0.14); } .topbar{ min-height: 64px; padding: 0.8rem 1.5rem; background: rgba(248, 248, 245, 0.74); backdrop-filter: blur(8px); } body.dark-theme .topbar{ background: rgba(19, 27, 35, 0.88); } .topbar__caption, .page-header__eyebrow, .sidebar-section__label, .stat-card__label, .layout-footer span{ font-size: 0.68rem; letter-spacing: 0.14em; } .topbar__headline{ font-size: 0.94rem; letter-spacing: 0.08em; } .topbar__icon-btn.p-button, .topbar__logout-btn.p-button{ height: 2.45rem; min-width: 2.45rem; } .sidebar-brand{ padding-bottom: 1rem; } .sidebar-nav__item{ min-height: 40px; padding: 0.62rem 0.75rem; border-radius: 10px; } .sidebar-nav__item i{ font-size: 0.92rem; } .page-header{ padding: 1.6rem 0 1rem; margin-bottom: 1.2rem; } .page-header__title{ font-size: clamp(1.65rem, 3vw, 2.6rem); letter-spacing: 0.05em; } .page-header__subtitle, .section-card__subtitle{ font-size: 0.92rem; line-height: 1.65; } .section-card.p-card, .stat-card.p-card{ border-radius: 18px; box-shadow: var(--shadow-md); } .section-card .p-card-content, .stat-card .p-card-content{ padding: 1rem 1.05rem; } .section-card__header{ padding-bottom: 0.8rem; margin-bottom: 0.8rem; } .section-card__title{ font-size: 0.96rem; letter-spacing: 0.06em; } .stat-card__value{ font-size: clamp(1.35rem, 2.2vw, 1.8rem); } .stat-card__hint, .metric-tile span, .table-secondary, .form-field label, .topbar__user-meta small, .settings-toggle small{ font-size: 0.78rem; } .metric-tile strong, .settings-toggle strong{ font-size: 0.88rem; } .metric-tile, .settings-toggle{ border-radius: 12px; } .p-button{ min-height: 2.55rem; padding: 0.66rem 0.9rem; font-size: 0.74rem; font-weight: 600; letter-spacing: 0.1em; border-radius: 9px; } .p-button:not(.p-disabled):hover{ transform: none; filter: brightness(1.04); } .p-button.p-button-secondary, .p-button.p-button-help, .p-button.p-button-outlined, .p-button.p-button-text{ background: color-mix(in srgb, var(--surface-1) 92%, transparent); } .p-button.table-action-btn{ width: 2.15rem; min-width: 2.15rem; height: 2.15rem; border-radius: 8px; } .p-inputtext, .p-inputtextarea, textarea.p-inputtextarea{ border-radius: 10px; padding: 0.72rem 0.82rem; font-size: 0.92rem; background: color-mix(in srgb, var(--surface-1) 88%, transparent); } .p-tag{ font-size: 0.6rem; } .app-table{ border-radius: 14px; } .app-table .p-datatable-wrapper{ border-radius: 14px; } .app-table .p-datatable-thead > tr > th{ font-size: 0.7rem; letter-spacing: 0.1em; padding: 0.8rem 0.9rem; } .app-table .p-datatable-tbody > tr > td{ padding: 0.82rem 0.9rem; font-size: 0.9rem; } .form-field{ gap: 0.4rem; } .form-field label{ font-size: 0.72rem; letter-spacing: 0.12em; } .layout-content{ padding: 0 1.5rem 1.5rem; } .topbar{ min-height: 68px; padding: 0.85rem 1.5rem; background: rgba(255, 255, 255, 0.12); } body.dark-theme .topbar{ background: rgba(23, 33, 43, 0.74); } .topbar__headline{ font-size: 1.2rem; letter-spacing: 0.03em; } .topbar__caption{ font-size: 0.65rem; } .topbar__user-meta strong{ font-size: 0.86rem; } .topbar__user-meta small{ font-size: 0.68rem; } .layout-sidebar{ padding: 1rem 0.9rem; } .sidebar-brand__logo{ width: 2.2rem; height: 2.2rem; font-size: 0.8rem; } .sidebar-brand__text h2{ font-size: 0.95rem; } .sidebar-brand__text p, .sidebar-section__label, .sidebar-nav__item span{ font-size: 0.78rem; } .sidebar-nav__item{ min-height: 2.5rem; border-radius: 10px; } .p-button{ min-height: 2.45rem; padding: 0.55rem 0.9rem; border-radius: 10px; font-size: 0.82rem; box-shadow: none; } .p-button .p-button-label{ font-weight: 500; } .p-button.table-action-btn, .topbar__icon-btn.p-button{ min-height: 2.2rem; width: 2.2rem; padding: 0; } .topbar__logout-btn.p-button{ min-height: 2.2rem; padding: 0.45rem 0.75rem; } .form-field label{ font-size: 0.72rem; } .p-inputtext{ min-height: 2.5rem; font-size: 0.84rem; } .page-header__title{ font-size: 1.55rem; } .section-card__title, .stat-card__value{ font-size: 0.95rem; } .p-datatable .p-datatable-thead > tr > th, .p-datatable .p-datatable-tbody > tr > td{ font-size: 0.79rem; } .p-button{ color: var(--primary-contrast); } .p-button.p-button-secondary, .p-button.p-button-help, .p-button.p-button-outlined, .p-button.p-button-text{ color: var(--text-main); } .metric-tile{ display: flex; flex-direction: column; align-items: flex-start; justify-content: flex-start; gap: 0.45rem; min-height: 6rem; } .metric-tile span, .metric-tile strong{ white-space: normal; word-break: break-word; } .repository-table .p-datatable-tbody > tr > td{ vertical-align: top; } .table-actions--labels{ display: flex; flex-wrap: wrap; gap: 0.5rem; } .p-button.table-action-btn--wide{ width: auto; min-width: auto; padding-inline: 0.8rem; } .preview-dialog .p-dialog-header{ align-items: center; } .preview-dialog__actions{ margin-bottom: 0.85rem; justify-content: flex-end; } .preview-dialog__content{ max-height: 68vh; margin: 0; } .change-password-form{ max-width: none; width: 100%; } .p-toast{ width: min(26rem, calc(100vw - 2rem)); } .p-toast .p-toast-message{ border-radius: 16px; border: 1px solid var(--border-color); box-shadow: var(--shadow-md); overflow: hidden; } .p-toast .p-toast-message-content{ gap: 0.8rem; } .p-confirm-dialog .p-dialog-content{ line-height: 1.65; } @media (max-width: 720px) { .change-password-form{ grid-template-columns: 1fr; } .table-actions--labels{ flex-direction: column; align-items: stretch; } .router-modal-summary{ flex-direction: column; align-items: flex-start; } .layout-footer__author{ width: 100%; justify-content: center; } .beta-banner, .swos-beta-result__item{ flex-direction: column; align-items: flex-start; } .router-dialog .p-dialog-header{ padding: 1rem 0.85rem 0.85rem; } .router-dialog .p-dialog-content{ padding: 0 0.85rem 0.95rem; } .router-dialog-header{ align-items: flex-start; } .router-dialog-panel__header{ flex-direction: column; } .router-dialog-actions{ flex-direction: column-reverse; align-items: stretch; } .router-dialog-actions .p-button{ width: 100%; min-width: 0; } .device-toggle{grid-template-columns:auto auto auto minmax(0,1fr);align-items:start;} .device-toggle__state{grid-column:2 / -1;justify-self:start;} } .sidebar-brand__logo img{ width: 100%; height: 100%; object-fit: contain; } .sidebar-brand__logo{ width: 3.25rem; height: 3.25rem; border-radius: 22px; background: rgba(255, 255, 255, 0.92); padding: 0.55rem; display: grid; place-items: center; box-shadow: inset 0 0 0 1px rgba(17, 20, 23, 0.08); } .topbar__user{ padding: 0.35rem 0.65rem 0.35rem 0.35rem; border: 1px solid var(--border-color); border-radius: 999px; background: var(--surface-1); } .topbar__avatar{ background: linear-gradient(135deg, var(--blue), var(--accent)); color: #fff; border: 2px solid rgba(255, 255, 255, 0.16); box-shadow: 0 10px 24px rgba(75, 144, 217, 0.22); } body.dark-theme .topbar__avatar{ color: #f8fbff; border-color: rgba(255, 255, 255, 0.18); } app-section-card.dashboard-operations-card{ display: block; margin-bottom: 0.5rem; } .metric-tile--feature{ min-height: 106px; justify-content: space-between; } .repository-toolbar{ display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 0.9rem; margin-bottom: 1rem; } .repository-toolbar__search{ grid-column: span 4; } .repository-toolbar .form-field, .compare-strip__slot{ grid-column: span 2; } .repository-toolbar__actions, .compare-strip__actions{ grid-column: span 2; align-self: end; } .compare-strip__swap{ align-self: end; } .table-actions--stack{ flex-direction: column; align-items: stretch; } .github-diff{ border: 1px solid var(--border-color); border-radius: 18px; overflow: hidden; max-height: 70vh; overflow-y: auto; } .github-diff__row{ display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } .github-diff__cell{ display: grid; grid-template-columns: 56px minmax(0, 1fr); min-width: 0; } .github-diff__number{ padding: 0.65rem 0.45rem; border-right: 1px solid var(--border-color); text-align: right; color: var(--text-faint); background: rgba(128, 145, 164, 0.08); font-family: var(--font-title); font-size: 0.78rem; } .github-diff__cell pre{ margin: 0; padding: 0.65rem 0.85rem; white-space: pre-wrap; word-break: break-word; font-family: var(--font-title); line-height: 1.5; } .github-diff__row[data-type="added"] .github-diff__cell--right, .github-diff__row[data-type="modified"] .github-diff__cell--right{ background: rgba(79, 181, 147, 0.12); } .github-diff__row[data-type="removed"] .github-diff__cell--left, .github-diff__row[data-type="modified"] .github-diff__cell--left{ background: rgba(227, 122, 122, 0.12); } .diff-layout__summary{ display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr) auto auto; gap: 1rem; align-items: center; margin-bottom: 1rem; } .diff-layout__summary-arrow{ color: var(--text-faint); } .diff-stats{ display: flex; gap: 0.5rem; flex-wrap: wrap; } .diff-stats__pill{ padding: 0.45rem 0.7rem; border-radius: 999px; font-family: var(--font-title); font-size: 0.78rem; } .diff-stats__pill--added{ background: rgba(79, 181, 147, 0.14); color: var(--success); } .diff-stats__pill--removed{ background: rgba(227, 122, 122, 0.14); color: var(--danger); } .diff-stats__pill--modified{ background: rgba(240, 180, 91, 0.14); color: var(--warning); } .settings-status-grid{ display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; margin-bottom: 1.35rem; } .settings-status-card{ padding: 1rem; border: 1px solid var(--border-color); border-radius: 22px; background: var(--surface-0); box-shadow: var(--shadow-md); } .settings-status-card__header{ display: flex; justify-content: space-between; gap: 1rem; margin-bottom: 0.75rem; } .settings-status-card__description{ font-family: var(--font-title); margin-bottom: 0.25rem; } .settings-scheduler-stack{ display: grid; gap: 1rem; } .scheduler-card{ padding: 1rem; border-radius: 22px; border: 1px solid var(--border-color); background: linear-gradient(180deg, rgba(75, 144, 217, 0.05), rgba(75, 144, 217, 0.01)); } .scheduler-card__header{ display: flex; justify-content: space-between; gap: 1rem; align-items: center; margin-bottom: 1rem; } .scheduler-card__header small{ display: block; margin-top: 0.3rem; } .scheduler-card__grid{ display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0.9rem; } .time-picker{ display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: center; gap: 0.45rem; } .settings-actions--sticky{ position: sticky; bottom: 1rem; justify-content: flex-end; padding: 0.8rem 1rem; border-radius: 18px; background: rgba(23, 33, 43, 0.08); backdrop-filter: blur(10px); } body.dark-theme .settings-actions--sticky{ background: rgba(7, 12, 18, 0.45); } .change-password-shell{ display: grid; grid-template-columns: minmax(280px, 360px) minmax(0, 1fr); gap: 1.25rem; } .password-insights{ display: grid; gap: 1rem; } .password-strength{ display: flex; justify-content: space-between; gap: 1rem; align-items: center; } .password-strength__track{ height: 12px; border-radius: 999px; background: rgba(128, 145, 164, 0.14); overflow: hidden; } .password-strength__track span{ display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--danger), var(--warning), var(--success)); } .password-checklist{ display: grid; gap: 0.75rem; } .password-checklist__item{ display: flex; align-items: center; gap: 0.7rem; color: var(--text-soft); } .password-checklist__item.is-ready{ color: var(--text-main); } .change-password-form--expanded{ align-items: start; } @media (max-width: 1280px) { .repository-toolbar__search, .repository-toolbar .form-field, .repository-toolbar__actions, .compare-strip__slot, .compare-strip__actions{ grid-column: span 6; } .settings-status-grid{ grid-template-columns: repeat(2, minmax(0, 1fr)); } .scheduler-card__grid, .change-password-shell{ grid-template-columns: 1fr; } } @media (max-width: 860px) { .diff-layout__summary{ grid-template-columns: 1fr; } .github-diff__row{ grid-template-columns: 1fr; } .repository-toolbar__search, .repository-toolbar .form-field, .repository-toolbar__actions, .compare-strip__slot, .compare-strip__actions, .settings-status-grid{ grid-column: span 12; } .settings-status-grid{ grid-template-columns: 1fr; } } .inline-summary{ display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; margin-bottom: 1rem; padding: 0.95rem 1.05rem; border: 1px solid var(--border-color); border-radius: 18px; background: linear-gradient(180deg, rgba(255, 255, 255, 0.55), rgba(255, 255, 255, 0.18)); } body.dark-theme .inline-summary{ background: linear-gradient(180deg, rgba(255, 255, 255, 0.03), rgba(255, 255, 255, 0.01)); } .inline-summary--soft{ box-shadow: var(--shadow-md); } .inline-summary--tight{ margin-bottom: 1.2rem; } .inline-summary__item{ display: flex; flex-direction: column; gap: 0.2rem; } .inline-summary__item strong{ font-family: var(--font-title); font-size: 1rem; letter-spacing: 0.04em; } .inline-summary__item span{ color: var(--text-soft); font-size: 0.76rem; letter-spacing: 0.12em; text-transform: uppercase; } .inline-summary__divider{ width: 1px; align-self: stretch; background: var(--border-color); } .settings-automation-intro{ display: flex; justify-content: space-between; gap: 1rem; align-items: center; margin-bottom: 1rem; padding: 0.95rem 1rem; border: 1px dashed var(--border-strong); border-radius: 18px; background: rgba(75, 144, 217, 0.04); } .settings-automation-intro strong, .repository-compare__header strong{ font-family: var(--font-title); font-size: 0.95rem; letter-spacing: 0.05em; } .settings-automation-intro p, .repository-compare__header p, .scheduler-card__hint{ margin: 0.25rem 0 0; color: var(--text-soft); line-height: 1.55; } .scheduler-card__hint{ margin-bottom: 1rem; font-size: 0.84rem; } .choice-toggle{ display: inline-grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.35rem; padding: 0.3rem; border: 1px solid var(--border-color); border-radius: 999px; background: color-mix(in srgb, var(--surface-1) 92%, transparent); } .choice-toggle__btn{ min-width: 92px; border: 0; border-radius: 999px; padding: 0.52rem 0.8rem; background: transparent; color: var(--text-soft); font-family: var(--font-title); font-size: 0.72rem; letter-spacing: 0.12em; text-transform: uppercase; cursor: pointer; transition: background 0.15s ease, color 0.15s ease, box-shadow 0.15s ease; } .choice-toggle__btn.is-active{ background: var(--primary); color: #fff; box-shadow: var(--shadow-md); } .settings-toggle{ align-items: flex-start; } .operations-center{ display: grid; grid-template-columns: minmax(240px, 320px) minmax(0, 1fr); gap: 1rem; align-items: stretch; } .operations-center__actions{ display: grid; gap: 0.85rem; padding: 1rem; border-radius: 20px; border: 1px solid var(--border-color); background: linear-gradient(180deg, rgba(75, 144, 217, 0.06), rgba(75, 144, 217, 0.015)); } .operations-center__actions .p-button{ justify-content: center; } .operations-center__actions .btn-binary-accent{ background: rgba(141, 89, 58, 0.1); border-color: rgba(141, 89, 58, 0.34); color: #6f452d; } .operations-center__actions .btn-binary-accent:not(.p-disabled):hover{ background: rgba(141, 89, 58, 0.14); border-color: rgba(141, 89, 58, 0.42); } body.dark-theme .operations-center__actions .btn-binary-accent{ background: rgba(75, 144, 217, 0.09); border-color: rgba(75, 144, 217, 0.3); color: #dbe8f5; } body.dark-theme .operations-center__actions .btn-binary-accent:not(.p-disabled):hover{ background: rgba(75, 144, 217, 0.13); border-color: rgba(75, 144, 217, 0.4); } .header-actions-row .btn-pushover-neutral{ background: rgba(75, 144, 217, 0.08); border-color: rgba(75, 144, 217, 0.26); color: #2f5f8f; } .header-actions-row .btn-pushover-neutral:not(.p-disabled):hover{ background: rgba(75, 144, 217, 0.12); border-color: rgba(75, 144, 217, 0.34); } body.dark-theme .header-actions-row .btn-pushover-neutral{ background: rgba(75, 144, 217, 0.08); border-color: rgba(75, 144, 217, 0.28); color: #dbe8f5; } body.dark-theme .header-actions-row .btn-pushover-neutral:not(.p-disabled):hover{ background: rgba(75, 144, 217, 0.12); border-color: rgba(75, 144, 217, 0.38); } .operations-center__stats{ display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0.85rem; } .operations-center__stats .metric-tile small{ margin-top: 0.35rem; color: var(--text-soft); line-height: 1.45; } .repository-compare{ margin-top: 1rem; padding: 1rem; border: 1px solid var(--border-color); border-radius: 22px; background: linear-gradient(180deg, rgba(75, 144, 217, 0.06), rgba(75, 144, 217, 0.02)); } .repository-compare__header{ display: flex; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; align-items: flex-start; } .repository-compare__status{ display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 0.5rem; } .repository-compare__grid{ display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr) auto; gap: 0.9rem; align-items: end; } .repository-compare__slot{ min-width: 0; } .repository-compare__actions{ display: grid; gap: 0.65rem; } .repository-table .p-datatable-tbody > tr[data-compare-role="left"] > td{ background: rgba(240, 180, 91, 0.07); } .repository-table .p-datatable-tbody > tr[data-compare-role="right"] > td{ background: rgba(79, 181, 147, 0.08); } .repository-table .p-datatable-tbody > tr[data-compare-role="left"]:hover > td, .repository-table .p-datatable-tbody > tr[data-compare-role="right"]:hover > td{ filter: brightness(1.01); } .change-password-form .p-inputtext{ width: 100%; } @media (max-width: 1280px) { .operations-center, .operations-center__stats, .repository-compare__grid{ grid-template-columns: 1fr; } .repository-compare__status{ justify-content: flex-start; } } @media (max-width: 860px) { .settings-automation-intro, .repository-compare__header{ flex-direction: column; } .choice-toggle{ width: 100%; } .choice-toggle__btn{ min-width: 0; } .inline-summary__divider{ display: none; } } .layout-footer a{ color: var(--accent); } .layout-footer__status{ display: inline-flex; align-items: center; gap: 0.45rem; } .layout-footer__status::before{ content: ""; width: 0.6rem; height: 0.6rem; border-radius: 999px; background: var(--text-faint); box-shadow: 0 0 0 4px rgba(128, 145, 164, 0.12); } .layout-footer__status--online::before{ background: var(--success); box-shadow: 0 0 0 4px rgba(79, 181, 147, 0.16); } .layout-footer__status--offline::before{ background: var(--danger); box-shadow: 0 0 0 4px rgba(195, 70, 70, 0.14); } .layout-footer__status--checking::before{ background: var(--warning); box-shadow: 0 0 0 4px rgba(240, 180, 91, 0.14); } .api-connection-banner{ position: fixed; right: 1.5rem; bottom: 1.5rem; z-index: 120; display: flex; align-items: center; gap: 0.9rem; width: min(28rem, calc(100vw - 2rem)); padding: 0.95rem 1rem; border-radius: 18px; border: 1px solid rgba(195, 70, 70, 0.22); background: rgba(255, 248, 248, 0.96); box-shadow: var(--shadow-lg); } body.dark-theme .api-connection-banner{ background: rgba(29, 39, 51, 0.96); } .api-connection-banner__content{ display: grid; gap: 0.25rem; } .api-connection-banner__content strong{ font-size: 0.84rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--danger); } .api-connection-banner__content span{ color: var(--text-soft); font-size: 0.9rem; line-height: 1.5; } .api-connection-banner__action{ flex-shrink: 0; border: 1px solid rgba(195, 70, 70, 0.2); border-radius: 999px; background: transparent; color: var(--danger); padding: 0.65rem 0.95rem; font: inherit; font-size: 0.78rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; cursor: pointer; } .api-connection-banner__action:hover{ background: rgba(195, 70, 70, 0.08); } .router-detail-grid{ align-items: start; } .router-detail-grid--stack{ grid-template-columns: 1fr; } .router-status-panel{ display: grid; gap: 0.9rem; } .router-status-error{ display: grid; gap: 0.35rem; padding: 0.85rem 1rem; border-radius: 16px; border: 1px solid rgba(217, 75, 91, 0.24); background: rgba(217, 75, 91, 0.08); } .table-actions--tight{ flex-wrap: nowrap; gap: 0.4rem; overflow-x: auto; padding-bottom: 0.15rem; } .p-button.table-action-btn--compact{ min-height: 2rem; padding-inline: 0.6rem; font-size: 0.78rem; } .settings-page-shell{ display: grid; gap: 1rem; } .settings-page-columns{ display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(320px, 0.95fr); gap: 1rem; align-items: start; } .settings-page-main, .settings-page-side{ display: grid; gap: 1rem; } .settings-collapse{ border: 1px solid var(--border-color); border-radius: 24px; background: linear-gradient(180deg, var(--surface-1) 0%, var(--surface-0) 100%); box-shadow: var(--shadow-md); overflow: hidden; } .settings-collapse > summary{ position: relative; list-style: none; cursor: pointer; padding: 1rem 3rem 1rem 1.15rem; display: grid; gap: 0.2rem; } .settings-collapse > summary::-webkit-details-marker{ display: none; } .settings-collapse > summary span{ font-family: var(--font-title); font-size: 1rem; letter-spacing: 0.08em; text-transform: uppercase; } .settings-collapse > summary small{ color: var(--text-soft); } .settings-collapse > summary::after{ content: ""; font-family: "primeicons"; position: absolute; right: 1.1rem; top: 50%; transform: translateY(-50%) rotate(0deg); color: var(--text-soft); transition: transform 0.2s ease; } .settings-collapse[open] > summary::after{ transform: translateY(-50%) rotate(180deg); } .settings-collapse__body{ padding: 0.85rem 1.15rem 1.15rem; border-top: 1px solid var(--border-color); } .settings-collapse__body > :first-child, .section-card .p-card-content > :first-child{ margin-top: 0; } .settings-collapse--sticky{ position: sticky; top: 1rem; } .settings-scheduler-stack{ margin-top: 1rem; } .scheduler-card--subtle{ background: linear-gradient(180deg, rgba(79, 181, 147, 0.08), rgba(79, 181, 147, 0.02)); } .scheduler-card__grid--compact{ grid-template-columns: minmax(0, 220px); } .settings-ssh-panel{ display: grid; gap: 1rem; } .settings-ssh-panel__header{ display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; } .settings-ssh-panel__header p, .settings-ssh-lock p, .settings-ssh-note{ color: var(--text-soft); } .settings-ssh-lock{ display: grid; gap: 0.85rem; padding: 1rem; border-radius: 18px; border: 1px dashed var(--border-color); background: rgba(75, 144, 217, 0.05); } .settings-ssh-actions{ justify-content: flex-end; } app-page-header, app-section-card, app-stat-card, app-sidebar, app-topbar{ display: block; } app-page-header{ margin-bottom: 1rem; } .section-card__header + *, .page-header__actions + *{ margin-top: 0.25rem; } .p-tag, .p-tag .p-tag-value{ max-width: 100%; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } @media (max-width: 1120px) { .settings-page-columns{ grid-template-columns: 1fr; } .settings-collapse--sticky{ position: static; } } @media (max-width: 860px) { .table-actions--tight{ flex-wrap: wrap; overflow-x: visible; } .settings-collapse__body{ padding-inline: 1rem; } } .router-detail-grid--inspection{ grid-template-columns: minmax(0, 1.2fr) minmax(340px, 0.9fr); align-items: start; } .router-detail-split-grid{ display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin-top: 1rem; } .router-detail-grid--stack{ margin-top: 1rem; } .router-modal-summary{ display: flex; justify-content: space-between; gap: 1rem; align-items: center; padding: 1rem; border: 1px dashed var(--border-color); border-radius: 18px; background: linear-gradient(180deg, rgba(75, 144, 217, 0.05), rgba(75, 144, 217, 0.015)); } .router-modal-summary strong, .diff-pick-card__meta strong{ display: block; margin: 0; } .router-modal-summary small, .diff-pick-card__meta small{ display: block; margin-top: 0.35rem; color: var(--text-soft); } .repository-table, .dashboard-grid > app-section-card, .router-detail-inspection-stack > app-section-card{ width: 100%; } .diff-workspace{ display: grid; gap: 1rem; } .diff-workspace__toolbar{ display: flex; justify-content: space-between; gap: 1rem; align-items: end; flex-wrap: wrap; } .diff-workspace__router{ min-width: min(320px, 100%); } .diff-workspace__actions{ display: flex; gap: 0.7rem; flex-wrap: wrap; } .diff-workspace__pair{ display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); gap: 1rem; align-items: center; } .diff-workspace__swap.p-button{ align-self: center; } .diff-pick-card{ display: grid; gap: 0.9rem; padding: 1rem; border-radius: 22px; border: 1px solid var(--border-color); background: linear-gradient(180deg, var(--surface-1), rgba(255,255,255,0.02)); } .diff-pick-card.is-selected{ border-color: rgba(75, 144, 217, 0.3); box-shadow: var(--shadow-md); } .diff-pick-card__header{ display: flex; justify-content: space-between; gap: 1rem; align-items: center; } .diff-pick-card__header strong{ font-family: var(--font-title); letter-spacing: 0.06em; } .diff-pick-card__meta{ padding-top: 0.3rem; border-top: 1px solid var(--border-color); } @media (max-width: 980px) { .diff-workspace__pair, .router-detail-grid--inspection, .router-detail-split-grid{ grid-template-columns: 1fr; } .diff-workspace__swap.p-button{ justify-self: stretch; } } .repository-table-section, .diff-configs-table-section{ display: block; margin-top: 1rem; } .repository-table.app-table{ border-radius: 16px; } .repository-table.app-table .p-datatable-thead > tr > th{ padding: 0.72rem 0.8rem; font-size: 0.68rem; letter-spacing: 0.1em; } .repository-table.app-table .p-datatable-tbody > tr > td{ padding: 0.68rem 0.8rem; } .repository-table .table-primary{ font-size: 0.88rem; line-height: 1.35; min-width: 0; max-width: 100%; white-space: normal; overflow-wrap: anywhere; word-break: break-word; } .repository-table .table-secondary{ margin-top: 0.18rem; font-size: 0.74rem; line-height: 1.35; min-width: 0; max-width: 100%; white-space: normal; overflow-wrap: anywhere; word-break: break-word; } .repository-table .p-tag{ font-size: 0.62rem; padding: 0.24rem 0.58rem; } .repository-table .p-datatable-thead > tr > th:first-child{ width: 2.6rem; padding-inline: 0.55rem; } .repository-table .p-datatable-tbody > tr > td:first-child{ padding-inline: 0.55rem; } .repository-table .table-actions--stack{ gap: 0.38rem; min-width: 0; } .repository-table .p-button.table-action-btn, .repository-table .p-button.table-action-btn--wide, .repository-table .p-button.table-action-btn--compact{ min-height: 1.9rem; min-width: 0; max-width: 100%; padding: 0.45rem 0.62rem; font-size: 0.7rem; letter-spacing: 0.09em; } .repository-table .p-button .p-button-label{ white-space: nowrap; overflow-wrap: normal; word-break: normal; } .repository-table .p-column-title{ display: none; } .repository-table .p-button .p-button-icon{ font-size: 0.78rem; } .repository-table .p-paginator{ padding: 0.4rem 0.65rem; } .repository-table .p-paginator .p-paginator-pages .p-paginator-page, .repository-table .p-paginator .p-paginator-next, .repository-table .p-paginator .p-paginator-prev{ min-width: 2rem; height: 2rem; } .repository-compare{ margin-top: 1.15rem; } .repository-compare__grid{ margin-top: 0.2rem; } .diff-workspace{ gap: 1.15rem; } .diff-workspace__pair{ margin-top: 0.15rem; } .preview-dialog .p-dialog-header{ padding-bottom: 0.9rem; } .preview-dialog .p-dialog-content{ padding-top: 1rem; } @media (max-width: 980px) { .repository-table-section, .diff-configs-table-section{ margin-top: 0.85rem; } .repository-table.app-table .p-datatable-thead > tr > th, .repository-table.app-table .p-datatable-tbody > tr > td{ padding-inline: 0.72rem; } } .layout-footer__author{ display: inline-flex; align-items: center; gap: 0.55rem; padding: 0.45rem 0.85rem; border-radius: 999px; border: 1px solid var(--border-color); background: color-mix(in srgb, var(--surface-1) 90%, transparent); } .layout-footer__author-label{ color: var(--text-soft); } .layout-footer__author strong{ font-size: 0.82rem; text-transform: none; letter-spacing: 0.04em; } .layout-footer__author a{ font-size: 0.78rem; font-weight: 700; } .settings-interface-intro, .settings-automation-intro{ display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; padding: 0.95rem 1rem; border: 1px dashed var(--border-strong); border-radius: 18px; background: rgba(75, 144, 217, 0.04); } .settings-interface-intro strong, .settings-automation-intro strong, .repository-compare__header strong{ font-family: var(--font-title); font-size: 0.95rem; letter-spacing: 0.05em; } .settings-interface-intro p, .settings-automation-intro p, .repository-compare__header p, .scheduler-card__hint{ margin: 0.25rem 0 0; color: var(--text-soft); line-height: 1.55; } .choice-toggle{ overflow: hidden; } .choice-toggle__btn{ font-weight: 700; } body.dark-theme .choice-toggle{ background: rgba(8, 14, 22, 0.52); border-color: rgba(146, 170, 194, 0.24); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.03); } body.dark-theme .choice-toggle__btn{ color: #b8c8d8; } body.dark-theme .choice-toggle__btn:hover{ background: rgba(255, 255, 255, 0.06); color: #edf3f8; } body.dark-theme .choice-toggle__btn.is-active{ background: linear-gradient(135deg, color-mix(in srgb, var(--accent) 82%, #fff 0%), color-mix(in srgb, var(--blue) 85%, #fff 0%)); color: #0f1720; } .p-confirm-dialog{ border-radius: 24px; overflow: hidden; border: 1px solid var(--border-color); box-shadow: var(--shadow-lg); } .p-confirm-dialog .p-dialog-header{ padding: 1rem 1.15rem 0.75rem; background: linear-gradient(180deg, color-mix(in srgb, var(--surface-1) 98%, transparent), color-mix(in srgb, var(--surface-0) 98%, transparent)); border-bottom: 1px solid var(--border-color); } .p-confirm-dialog .p-dialog-title{ font-family: var(--font-title); letter-spacing: 0.08em; } .p-confirm-dialog .p-dialog-content{ padding: 1rem 1.15rem 0.5rem; line-height: 1.65; background: color-mix(in srgb, var(--surface-0) 98%, transparent); } .p-confirm-dialog .p-confirm-dialog-icon{ width: 2.6rem; height: 2.6rem; display: inline-grid; place-items: center; border-radius: 16px; background: color-mix(in srgb, var(--warning) 14%, transparent); color: var(--warning); margin-right: 0.85rem; } .p-confirm-dialog .p-dialog-footer{ display: flex; justify-content: flex-end; gap: 0.65rem; padding: 0.9rem 1.15rem 1rem; background: color-mix(in srgb, var(--surface-1) 98%, transparent); border-top: 1px solid var(--border-color); } body.dark-theme .p-confirm-dialog .p-confirm-dialog-icon{ background: rgba(240, 180, 91, 0.14); } .settings-actions, .settings-actions--sticky{ justify-content: center; } .beta-banner{ display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; padding: 1rem 1.05rem; border-radius: 16px; border: 1px solid color-mix(in srgb, var(--warning) 36%, var(--border-color)); background: linear-gradient(180deg, color-mix(in srgb, var(--warning) 10%, transparent), color-mix(in srgb, var(--surface-1) 94%, transparent)); } .beta-banner p{ margin: 0.45rem 0 0; color: var(--text-soft); line-height: 1.6; } .swos-beta-grid{ align-items: start; } .swos-beta-actions{ grid-column: 1 / -1; justify-content: flex-start; flex-wrap: wrap; } .swos-beta-result{ display: grid; gap: 0.85rem; } .swos-beta-result__item{ display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 0.9rem 1rem; border-radius: 14px; border: 1px solid var(--border-color); background: color-mix(in srgb, var(--surface-1) 90%, transparent); } .swos-beta-result__item span{ color: var(--text-soft); font-size: 0.78rem; letter-spacing: 0.08em; text-transform: uppercase; } .swos-beta-result__item strong{ text-align: right; } .swos-beta-note, .beta-error{ padding: 0.9rem 1rem; border-radius: 14px; line-height: 1.6; } .swos-beta-note{ border: 1px solid var(--border-color); color: var(--text-soft); background: color-mix(in srgb, var(--surface-1) 88%, transparent); } .beta-error{ border: 1px solid color-mix(in srgb, var(--danger) 38%, var(--border-color)); color: color-mix(in srgb, var(--danger) 82%, var(--text-main)); background: color-mix(in srgb, var(--danger) 8%, transparent); } .router-dialog .p-dialog-header{ padding: 1.15rem 1.2rem 1rem; align-items: flex-start; background: linear-gradient(135deg, rgba(75, 144, 217, 0.16), rgba(79, 181, 147, 0.1)), linear-gradient(180deg, rgba(255, 255, 255, 0.03), rgba(255, 255, 255, 0)), var(--surface-1); border-bottom: 1px solid rgba(75, 144, 217, 0.18); } .router-dialog .p-dialog-header-icons{ align-self: flex-start; margin-top: 0.2rem; } .router-dialog .p-dialog-content{ padding: 0 1.2rem 1.2rem; background: linear-gradient(180deg, rgba(75, 144, 217, 0.06) 0%, rgba(75, 144, 217, 0) 180px), var(--surface-1); } .router-dialog-header{ display: flex; align-items: center; gap: 0.9rem; width: calc(100% - 0.5rem); } .router-dialog-header__icon{ width: 3rem; height: 3rem; border-radius: 18px; display: grid; place-items: center; flex-shrink: 0; background: linear-gradient(135deg, rgba(75, 144, 217, 0.24), rgba(79, 181, 147, 0.14)); border: 1px solid rgba(75, 144, 217, 0.2); color: var(--primary); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08); } .router-dialog-header__icon .pi{ font-size: 1.05rem; } .router-dialog-header__text{ min-width: 0; } .router-dialog-header__eyebrow{ font-family: var(--font-title); font-size: 0.72rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--text-soft); } .router-dialog-header__title{ margin-top: 0.2rem; font-family: var(--font-title); font-size: 1.18rem; line-height: 1.25; } .router-dialog-header__text small{ display: block; margin-top: 0.3rem; max-width: 42rem; line-height: 1.55; } .router-dialog-form{ display: grid; gap: 1rem; } .router-dialog-panel{ padding: 1rem; border-radius: 22px; border: 1px solid var(--border-color); background: linear-gradient(180deg, rgba(255, 255, 255, 0.03), rgba(255, 255, 255, 0)), var(--surface-0); box-shadow: var(--shadow-md); } .router-dialog-panel:first-child{ margin-top: 1rem; } .router-dialog-panel__header{ display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; margin-bottom: 0.95rem; } .router-dialog-panel__header strong{ display: block; font-family: var(--font-title); font-size: 0.88rem; letter-spacing: 0.1em; text-transform: uppercase; } .router-dialog-panel__header p{ margin: 0.35rem 0 0; color: var(--text-soft); line-height: 1.55; } .router-dialog-pill{ display: inline-flex; align-items: center; gap: 0.45rem; padding: 0.55rem 0.85rem; border-radius: 999px; border: 1px solid rgba(75, 144, 217, 0.18); background: rgba(75, 144, 217, 0.08); color: var(--text-main); font-family: var(--font-title); font-size: 0.72rem; letter-spacing: 0.08em; text-transform: uppercase; white-space: nowrap; } .router-dialog-grid{ gap: 0.95rem 1rem; } .router-dialog-note{ margin-top: 0.9rem; padding: 0.85rem 0.95rem; border-radius: 16px; border: 1px solid rgba(75, 144, 217, 0.18); background: rgba(75, 144, 217, 0.08); color: var(--text-soft); display: flex; align-items: flex-start; gap: 0.65rem; line-height: 1.55; } .router-dialog-note .pi{ margin-top: 0.1rem; color: var(--accent); } .router-dialog .p-inputtext, .router-dialog .p-inputtextarea{ background: rgba(255, 255, 255, 0.02); } .router-dialog .p-inputtextarea{ min-height: 11rem; } .router-dialog-actions{ justify-content: space-between; gap: 0.75rem; padding-top: 0.1rem; } .router-dialog-actions .p-button{ min-width: 11rem; } .p-select, .p-inputtext, .p-textarea, .p-inputtextarea, textarea.p-inputtextarea, textarea.p-textarea{ width: 100%; } .p-button:not(.p-button-secondary):not(.p-button-help):not(.p-button-danger):not(.p-button-text):not(.p-button-outlined){ background: var(--primary); border-color: var(--primary); color: #f8fbff; } body.dark-theme .p-button:not(.p-button-secondary):not(.p-button-help):not(.p-button-danger):not(.p-button-text):not(.p-button-outlined){ background: var(--primary); border-color: var(--primary); color: #17212b; } .p-select, .p-textarea, .p-inputtextarea, .p-inputtext, textarea.p-inputtextarea, textarea.p-textarea{ border-radius: 14px; border: 1px solid rgba(126, 142, 158, 0.24); background: linear-gradient(180deg, rgba(255, 255, 255, 0.96) 0%, rgba(247, 245, 241, 0.98) 100%); color: var(--text-main); box-shadow: 0 8px 18px rgba(15, 23, 42, 0.05); transition: border-color 0.16s ease, box-shadow 0.16s ease, background-color 0.16s ease; } body.dark-theme .p-select, body.dark-theme .p-textarea, body.dark-theme .p-inputtextarea, body.dark-theme .p-inputtext, body.dark-theme textarea.p-inputtextarea, body.dark-theme textarea.p-textarea{ background: linear-gradient(180deg, rgba(28, 38, 50, 0.98) 0%, rgba(23, 33, 44, 0.98) 100%); color: var(--text-main); border-color: rgba(146, 170, 194, 0.18); box-shadow: 0 12px 24px rgba(5, 10, 18, 0.26); } .p-select{ display: flex; align-items: center; min-height: 3rem; overflow: hidden; } .p-select:not(.p-disabled):hover{ border-color: rgba(141, 89, 58, 0.42); background: linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, rgba(244, 241, 236, 0.98) 100%); } body.dark-theme .p-select:not(.p-disabled):hover{ border-color: rgba(75, 144, 217, 0.24); background: linear-gradient(180deg, rgba(29, 39, 51, 0.985) 0%, rgba(24, 34, 45, 0.985) 100%); } .p-select.p-focus, .p-select.p-inputwrapper-focus{ border-color: rgba(141, 89, 58, 0.62); box-shadow: 0 0 0 3px rgba(141, 89, 58, 0.12), 0 10px 24px rgba(15, 23, 42, 0.06); } body.dark-theme .p-select.p-focus, body.dark-theme .p-select.p-inputwrapper-focus{ border-color: #4f95df; box-shadow: 0 0 0 3px rgba(79, 149, 223, 0.16), 0 16px 30px rgba(5, 10, 18, 0.28); } .p-select .p-select-label, .p-select .p-select-label.p-placeholder{ width: 100%; min-height: 0; padding: 0.84rem 0 0.84rem 1rem; border: 0; border-radius: 0; background: transparent; box-shadow: none; display: flex; align-items: center; font-family: var(--font-body); font-size: 0.94rem; font-weight: 500; line-height: 1.3; letter-spacing: 0; text-transform: none; color: var(--text-main); } .p-select .p-select-label.p-placeholder{ font-weight: 400; color: var(--text-soft); } .repository-toolbar .p-select .p-select-label, .repository-compare .p-select .p-select-label{ font-size: 0.95rem; line-height: 1.3; } .p-select .p-select-dropdown{ width: 2.85rem; display: grid; place-items: center; align-self: stretch; color: var(--text-soft); flex: 0 0 2.85rem; background: transparent; } .p-select .p-select-dropdown .p-icon{ width: 0.95rem; height: 0.95rem; } .p-inputtext:enabled:focus, .p-textarea:enabled:focus, .p-inputtextarea:enabled:focus, textarea.p-inputtextarea:enabled:focus, textarea.p-textarea:enabled:focus{ border-color: color-mix(in srgb, var(--blue) 72%, var(--border-strong)); box-shadow: 0 0 0 3px color-mix(in srgb, var(--blue) 18%, transparent); } body.dark-theme .auth-card .p-inputtext, body.dark-theme .auth-card .p-select, body.dark-theme .auth-card .p-textarea, body.dark-theme .auth-card .p-inputtextarea{ color: var(--text-main); border-color: var(--border-color); background: rgba(255, 255, 255, 0.035); } body.dark-theme .auth-card .p-inputtext::placeholder, body.dark-theme .auth-card .p-textarea::placeholder, body.dark-theme .auth-card .p-inputtextarea::placeholder{ color: var(--text-soft); } body.dark-theme .auth-card .p-inputtext:enabled:focus, body.dark-theme .auth-card .p-textarea:enabled:focus, body.dark-theme .auth-card .p-inputtextarea:enabled:focus{ border-color: var(--blue); box-shadow: 0 0 0 3px color-mix(in srgb, var(--blue) 18%, transparent); } .p-select-overlay{ backdrop-filter: blur(18px); background: linear-gradient(180deg, rgba(251, 250, 247, 0.98) 0%, rgba(244, 242, 238, 0.98) 100%); border: 1px solid rgba(126, 142, 158, 0.16); color: var(--text-main); box-shadow: 0 18px 40px rgba(15, 23, 42, 0.12); border-radius: 16px; overflow: hidden; } body.dark-theme .p-select-overlay{ background: linear-gradient(180deg, rgba(34, 46, 61, 0.98) 0%, rgba(24, 34, 45, 0.98) 100%); border-color: rgba(146, 170, 194, 0.12); box-shadow: 0 22px 48px rgba(5, 10, 18, 0.38); } .p-select-list{ padding: 0.35rem 0; background: transparent; gap: 0; } body.dark-theme .p-select-list{ background: transparent; } .p-select-option{ border-radius: 0; padding: 0.82rem 1rem; font-size: 0.92rem; line-height: 1.35; color: var(--text-main); transition: background-color 0.12s ease, color 0.12s ease; } .p-select-option:hover{ background: rgba(17, 20, 23, 0.045); color: #111417; } .p-select-option.p-focus{ background: rgba(17, 20, 23, 0.055); color: #111417; } .p-select-option.p-select-option-selected{ background: rgba(141, 89, 58, 0.09); color: #6f452d; font-weight: 600; } body.dark-theme .p-select-option{ color: #dbe5ef; } body.dark-theme .p-select-option:hover{ background: rgba(255, 255, 255, 0.03); color: #f4f8fb; } body.dark-theme .p-select-option.p-focus{ background: rgba(255, 255, 255, 0.04); color: #f4f8fb; } body.dark-theme .p-select-option.p-select-option-selected{ background: rgba(75, 144, 217, 0.22); color: #f4f8fb; font-weight: 600; } .p-textarea, .p-inputtextarea, textarea.p-textarea, textarea.p-inputtextarea{ padding: 0.82rem 0.9rem; } .router-dialog.p-dialog{ border: 1px solid var(--border-color); background: var(--surface-1); box-shadow: var(--shadow-lg); } body.dark-theme .router-dialog.p-dialog{ border-color: color-mix(in srgb, var(--border-color) 65%, transparent); } .router-dialog .p-dialog-header{ padding: 1.1rem 1.2rem 0.95rem; background: linear-gradient(180deg, color-mix(in srgb, var(--surface-1) 98%, transparent), color-mix(in srgb, var(--surface-0) 98%, transparent)); border-bottom: 1px solid var(--border-color); } .router-dialog .p-dialog-content{ padding: 0 1.2rem 1.2rem; background: color-mix(in srgb, var(--surface-0) 98%, transparent); } .router-dialog .p-dialog-header-icons{ align-self: flex-start; margin-top: 0.2rem; } .router-dialog-panel{ background: color-mix(in srgb, var(--surface-0) 96%, transparent); border: 1px solid var(--border-color); box-shadow: none; } .router-dialog .p-select, .router-dialog .p-textarea, .router-dialog .p-inputtextarea, .router-dialog .p-inputtext{ background: color-mix(in srgb, var(--surface-1) 90%, transparent); } body.dark-theme .router-dialog .p-select, body.dark-theme .router-dialog .p-textarea, body.dark-theme .router-dialog .p-inputtextarea, body.dark-theme .router-dialog .p-inputtext, body.dark-theme .router-dialog-panel{ background: rgba(255, 255, 255, 0.03); border-color: var(--border-color); } .repository-toolbar__search .p-input-icon-left{ position: relative; display: block; width: 100%; } .repository-toolbar__search .p-input-icon-left > i{ position: absolute; top: 50%; left: 0.9rem; transform: translateY(-50%); margin: 0; z-index: 1; color: var(--text-soft); pointer-events: none; line-height: 1; } .repository-toolbar__search .p-input-icon-left > .p-inputtext{ display: block; width: 100%; min-height: 2.75rem; padding-left: 2.5rem; } body.dark-theme .p-toast .p-toast-summary, body.dark-theme .p-toast .p-toast-detail, body.dark-theme .p-toast .p-toast-message-icon, body.dark-theme .p-toast .p-toast-icon-close{ color: var(--text-main); } .repository-table .p-paginator .p-paginator-pages .p-paginator-page, .repository-table .p-paginator .p-paginator-next, .repository-table .p-paginator .p-paginator-prev, .repository-table .p-paginator .p-select{ min-width: 2rem; height: 2rem; } .device-settings-form{display:block;} .device-settings-stack{display:grid;gap:12px;} .device-settings-actions{margin-top:16px;} .device-toggle{position:relative;display:grid;grid-template-columns:auto auto auto minmax(0,1fr) auto;align-items:center;gap:14px;padding:16px 18px;border:1px solid color-mix(in srgb,var(--border-color) 88%, transparent);border-radius:18px;background:linear-gradient(135deg,color-mix(in srgb,var(--surface-1) 92%, transparent),color-mix(in srgb,var(--surface-2) 90%, transparent));cursor:pointer;transition:border-color .15s ease,transform .15s ease,background .15s ease,box-shadow .15s ease;box-shadow:var(--shadow-md);overflow:hidden;} .device-toggle::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,transparent,rgba(255,255,255,.04),transparent);opacity:0;transition:opacity .15s ease;} .device-toggle:hover{border-color:color-mix(in srgb,var(--accent) 55%, var(--border-color));transform:translateY(-1px);} .device-toggle:hover::after,.device-toggle.is-active::after{opacity:1;} .device-toggle.is-active{border-color:color-mix(in srgb,var(--accent) 60%, var(--border-color));background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 12%, var(--surface-1)),color-mix(in srgb,var(--accent) 6%, var(--surface-2)));box-shadow:0 16px 40px -26px color-mix(in srgb,var(--accent) 45%, transparent),var(--shadow-md);} .device-toggle input{position:absolute;opacity:0;pointer-events:none;inline-size:1px;block-size:1px;} .device-toggle__switch{position:relative;display:inline-flex;align-items:center;inline-size:46px;block-size:26px;border-radius:999px;background:color-mix(in srgb,var(--surface-3) 88%, transparent);border:1px solid color-mix(in srgb,var(--border-color) 82%, transparent);box-shadow:inset 0 1px 2px rgba(0,0,0,.16);transition:background .15s ease,border-color .15s ease,box-shadow .15s ease;} .device-toggle__switch::after{content:"";position:absolute;inset:3px auto 3px 3px;inline-size:18px;block-size:18px;border-radius:50%;background:var(--text-main);box-shadow:0 4px 10px rgba(0,0,0,.18);transition:transform .15s ease,background .15s ease;} .device-toggle__icon{display:grid;place-items:center;inline-size:40px;block-size:40px;border-radius:12px;background:color-mix(in srgb,var(--surface-3) 84%, transparent);border:1px solid color-mix(in srgb,var(--border-color) 82%, transparent);color:var(--text-muted);font-size:1rem;} .device-toggle.is-active .device-toggle__icon{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 35%, var(--border-color));background:color-mix(in srgb,var(--accent) 12%, var(--surface-3));} .device-toggle.is-active .device-toggle__switch{background:color-mix(in srgb,var(--accent) 20%, var(--surface-3));border-color:color-mix(in srgb,var(--accent) 35%, var(--border-color));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 20%, transparent);} .device-toggle.is-active .device-toggle__switch::after{transform:translateX(20px);background:var(--accent);} .device-toggle__content{display:grid;gap:4px;min-width:0;} .device-toggle__content strong{font-size:.94rem;color:var(--text-main);} .device-toggle__content small{line-height:1.45;color:var(--text-muted);} .device-toggle__state{font-size:.75rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);padding:8px 10px;border-radius:999px;background:color-mix(in srgb,var(--surface-3) 88%, transparent);border:1px solid color-mix(in srgb,var(--border-color) 82%, transparent);} .device-toggle.is-active .device-toggle__state{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 28%, var(--border-color));background:color-mix(in srgb,var(--accent) 12%, var(--surface-3));} body.dark-theme .device-toggle{background:linear-gradient(135deg,color-mix(in srgb,var(--surface-2) 94%, transparent),color-mix(in srgb,var(--surface-1) 88%, transparent));} body.dark-theme .device-toggle.is-active{background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 14%, var(--surface-2)),color-mix(in srgb,var(--accent) 7%, var(--surface-1)));} @media (max-width: 1100px){ .router-detail-split-grid{grid-template-columns:minmax(0,1fr);} } .router-header-actions--mobile{display:none;} .mobile-actions-menu{position:relative;} .mobile-actions-menu summary{display:inline-flex;align-items:center;gap:10px;list-style:none;cursor:pointer;padding:10px 14px;border-radius:14px;border:1px solid color-mix(in srgb,var(--border-color) 82%, transparent);background:color-mix(in srgb,var(--surface-2) 92%, transparent);color:var(--text-main);font-weight:700;box-shadow:var(--shadow-sm);} .mobile-actions-menu summary::-webkit-details-marker{display:none;} .mobile-actions-menu[open] summary{border-color:color-mix(in srgb,var(--accent) 36%, var(--border-color));} .mobile-actions-menu__list{position:absolute;right:0;top:calc(100% + 10px);z-index:20;display:grid;gap:10px;min-inline-size:min(320px,calc(100vw - 32px));padding:12px;border-radius:18px;border:1px solid color-mix(in srgb,var(--border-color) 82%, transparent);background:color-mix(in srgb,var(--surface-1) 96%, transparent);box-shadow:var(--shadow-lg);backdrop-filter:blur(14px);} .mobile-actions-menu__list .p-button{width:100%;justify-content:flex-start;} .settings-device-toggles{margin-bottom:18px;} .settings-device-toggles .device-toggle{grid-template-columns:auto auto auto minmax(0,1fr);} .settings-device-toggles .device-toggle__content{padding-right:0;} @media (max-width: 768px){ .router-header-actions--desktop{display:none;} .router-header-actions--mobile{display:block;width:100%;} .mobile-actions-menu{width:100%;} .mobile-actions-menu summary{margin-left:auto;} .mobile-actions-menu__list{position:static;right:auto;top:auto;min-inline-size:0;width:100%;margin-top:10px;} } .repository-table .table-actions--labels, .repository-table .table-actions--tight{ align-items: center; } .repository-table .table-actions--tight{ flex-wrap: wrap; overflow-x: visible; } .repository-table .p-button.table-action-btn, .repository-table .p-button.table-action-btn--wide, .repository-table .p-button.table-action-btn--compact{ width: auto; flex: 0 0 auto; } .repository-table.app-table .p-datatable-thead > tr > th:last-child, .repository-table.app-table .p-datatable-tbody > tr > td:last-child{ width: 1%; white-space: nowrap; } .repository-table .p-column-title{display:none !important;} .repository-table--files .p-datatable-thead > tr > th:first-child, .repository-table--files .p-datatable-tbody > tr > td:first-child{ width: 3rem; padding-inline: 0.55rem; } .repository-table--router-detail .p-datatable-thead > tr > th:first-child, .repository-table--router-detail .p-datatable-tbody > tr > td:first-child, .repository-table--diff .p-datatable-thead > tr > th:first-child, .repository-table--diff .p-datatable-tbody > tr > td:first-child{ width: auto; padding-inline: 0.8rem; } .repository-table--routers.app-table .p-datatable-thead > tr > th:first-child, .repository-table--routers.app-table .p-datatable-tbody > tr > td:first-child{ width: 18%; min-width: 220px; max-width: 0; } .repository-table--routers .table-primary--ellipsis{ max-width: 100%; } .repository-table .table-primary--ellipsis{ display:block; max-width:100%; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; } .repository-table .table-secondary{ overflow:hidden; text-overflow:ellipsis; } .repository-table.app-table .p-datatable-thead > tr > th, .repository-table.app-table .p-datatable-tbody > tr > td{ min-width:0; } .repository-table.app-table .p-datatable-thead > tr > th:last-child, .repository-table.app-table .p-datatable-tbody > tr > td:last-child{ width: 280px; min-width: 280px; white-space: normal; } .repository-table--diff.app-table .p-datatable-thead > tr > th:last-child, .repository-table--diff.app-table .p-datatable-tbody > tr > td:last-child{ width: 220px; min-width: 220px; } .repository-table .table-actions--desktop-row{ display:flex; flex-direction:row; flex-wrap:nowrap; align-items:center; gap:0.45rem; overflow:hidden; } .repository-table .table-actions--desktop-row .p-button{ flex:0 0 auto; } .repository-table .table-row-menu{ display:none; position:relative; } .repository-table .table-row-menu summary{ display:inline-flex; align-items:center; gap:8px; list-style:none; cursor:pointer; padding:8px 12px; border-radius:12px; border:1px solid color-mix(in srgb,var(--border-color) 82%, transparent); background:color-mix(in srgb,var(--surface-2) 92%, transparent); color:var(--text-main); font-weight:700; white-space:nowrap; } .repository-table .table-row-menu summary::-webkit-details-marker{display:none;} .repository-table .table-row-menu__list{ position:absolute; right:0; top:calc(100% + 8px); z-index:25; display:grid; gap:8px; min-width:220px; padding:10px; border-radius:16px; border:1px solid color-mix(in srgb,var(--border-color) 82%, transparent); background:color-mix(in srgb,var(--surface-1) 96%, transparent); box-shadow:var(--shadow-lg); } .repository-table .table-row-menu__list .p-button{width:100%;justify-content:center;} @media (max-width: 1400px){ .repository-table--router-detail .table-actions--desktop-row, .repository-table--diff .table-actions--desktop-row{ display:none; } .repository-table--router-detail .table-row-menu, .repository-table--diff .table-row-menu{ display:inline-block; } } @media (max-width: 1520px){ .repository-table--files .table-actions--desktop-row{ display:none; } .repository-table--files .table-row-menu{ display:inline-block; } } .repository-table--files.app-table .p-datatable-thead > tr > th:nth-child(2), .repository-table--files.app-table .p-datatable-tbody > tr > td:nth-child(2){ width: 34%; max-width: 0; } .repository-table--files.app-table .p-datatable-thead > tr > th:nth-child(7), .repository-table--files.app-table .p-datatable-tbody > tr > td:nth-child(7){ width: 230px; min-width: 230px; white-space: normal; } .repository-table--files.app-table .p-datatable-thead > tr > th:nth-child(8), .repository-table--files.app-table .p-datatable-tbody > tr > td:nth-child(8){ width: 200px; min-width: 200px; white-space: normal; } .repository-table--files .table-actions--desktop-row{ display: flex; flex-direction: column; align-items: flex-start; gap: 0.45rem; } .repository-table--files .table-actions--desktop-row .p-button{ width: 100%; justify-content: center; } .repository-table--files .table-primary--ellipsis, .repository-table--files .table-secondary{ max-width: 100%; } @media (max-width: 1520px){ .repository-table--files .table-actions--desktop-row{ display: none; } .repository-table--files .table-row-menu{ display: inline-block; } } @media (max-width: 960px){ .repository-table.app-table .p-datatable-wrapper{ overflow-x: hidden; } .repository-table.app-table .p-datatable-table{ width: 100% !important; table-layout: fixed; } .repository-table.app-table .p-datatable-tbody > tr > td{ align-items: flex-start; gap: 0.45rem; min-width: 0; max-width: 100%; overflow: hidden; box-sizing: border-box; } .repository-table .table-actions--stack, .repository-table .table-actions--labels{ width: 100%; min-width: 0; } .repository-table .p-column-title{ display: inline-flex; align-items: center; } .repository-table .p-button.table-action-btn, .repository-table .p-button.table-action-btn--wide, .repository-table .p-button.table-action-btn--compact{ width: 100%; justify-content: center; } .repository-table .p-button .p-button-label{ white-space: normal; overflow-wrap: anywhere; word-break: break-word; } .repository-table .p-column-title{ display:inline-flex !important; align-items:center; } .repository-table.app-table .p-datatable-thead > tr > th:last-child, .repository-table.app-table .p-datatable-tbody > tr > td:last-child, .repository-table--diff.app-table .p-datatable-thead > tr > th:last-child, .repository-table--diff.app-table .p-datatable-tbody > tr > td:last-child{ width:auto; min-width:0; } .repository-table .table-actions--desktop-row, .repository-table .table-row-menu{ display:none !important; } .repository-table .table-primary--ellipsis, .repository-table .table-secondary{ white-space:normal; overflow:visible; text-overflow:unset; } .repository-table--routers.app-table .p-datatable-thead > tr > th:first-child, .repository-table--routers.app-table .p-datatable-tbody > tr > td:first-child{ width: auto; min-width: 0; max-width: none; } .repository-table--files.app-table .p-datatable-thead > tr > th:nth-child(2), .repository-table--files.app-table .p-datatable-tbody > tr > td:nth-child(2), .repository-table--files.app-table .p-datatable-thead > tr > th:nth-child(7), .repository-table--files.app-table .p-datatable-tbody > tr > td:nth-child(7), .repository-table--files.app-table .p-datatable-thead > tr > th:nth-child(8), .repository-table--files.app-table .p-datatable-tbody > tr > td:nth-child(8){ width: auto; min-width: 0; max-width: none; } .repository-table .table-row-menu{ display:inline-block !important; width:100%; } .repository-table.app-table .p-datatable-tbody > tr > td:last-child{ overflow:visible; } .repository-table .table-row-menu summary{ width:100%; justify-content:center; } .repository-table .table-row-menu__list{ position:static; right:auto; top:auto; width:100%; min-width:0; margin-top:8px; } } .form-field-error{ display:block; margin-top:0.35rem; font-size:0.78rem; line-height:1.35; color:var(--red-400); } .repository-table .table-row-menu__list .p-button{justify-content:flex-start;}