.toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; padding: 8px 0 12px; border-bottom: 1px solid var(--color-border, #e2e8f0); margin-bottom: 8px; } .popoverAnchor { position: relative; } .groupTrigger { display: inline-flex; align-items: center; justify-content: center; padding: 8px 10px; border-radius: 8px; border: 1px solid var(--color-border, #cbd5e1); background: var(--color-bg, #fff); color: var(--color-text, #0f172a); cursor: pointer; transition: background 0.15s, border-color 0.15s, box-shadow 0.15s; } .groupIcon { display: block; font-size: 16px; opacity: 0.9; } .groupTrigger:hover { background: var(--bg-hover, rgba(15, 23, 42, 0.04)); border-color: var(--color-primary, #64748b); } .groupTriggerOpen { border-color: var(--color-primary, #4a6fa5); box-shadow: 0 0 0 2px color-mix(in srgb, var(--color-primary, #4a6fa5) 25%, transparent); } .popover { position: absolute; top: calc(100% + 6px); left: 0; z-index: 4200; min-width: min(360px, calc(100vw - 24px)); padding: 14px 14px 12px; border-radius: 12px; border: 1px solid var(--color-border, #e2e8f0); background: var(--color-bg, #ffffff); color: var(--color-text, #0f172a); box-shadow: 0 14px 40px rgba(15, 23, 42, 0.12); } .popoverTitle { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; color: var(--text-secondary, #94a3b8); margin: 0 0 6px; } .popoverHint { margin: 0 0 12px; font-size: 12px; line-height: 1.45; color: var(--text-muted, #64748b); } .levelList { display: flex; flex-direction: column; gap: 8px; } .levelRow { display: grid; grid-template-columns: 1fr 118px 36px; gap: 8px; align-items: center; } .select, .selectOrder { padding: 8px 10px; font-size: 13px; border-radius: 8px; border: 1px solid var(--color-border, #cbd5e1); background: var(--color-bg, #fff); color: var(--color-text, #0f172a); box-sizing: border-box; width: 100%; min-width: 0; } .select:disabled, .selectOrder:disabled { opacity: 0.45; cursor: not-allowed; } .iconBtn { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border: none; border-radius: 8px; background: transparent; color: var(--text-secondary, #94a3b8); cursor: pointer; } .iconBtn:hover:not(:disabled) { color: #fecaca; background: rgba(239, 68, 68, 0.12); } .iconBtn:disabled { opacity: 0.25; cursor: not-allowed; } .addLevelBtn { margin-top: 12px; width: 100%; padding: 8px 10px; font-size: 12px; font-weight: 600; border-radius: 8px; border: 1px dashed var(--color-border, #475569); background: transparent; color: var(--text-secondary, #94a3b8); cursor: pointer; } .addLevelBtn:hover { border-color: var(--color-primary, #4a6fa5); color: var(--color-primary, #7dd3fc); } .activeSummary { font-size: 12px; color: var(--text-secondary, #64748b); max-width: 220px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .viewBlock { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-left: auto; } .viewLabel { font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; color: var(--text-secondary, #64748b); } .viewSelect { min-width: 160px; padding: 6px 10px; font-size: 13px; border-radius: 8px; border: 1px solid var(--color-border, #cbd5e1); background: var(--color-bg, #fff); color: var(--color-text, #0f172a); } .btnGhost { padding: 6px 12px; font-size: 12px; font-weight: 600; border-radius: 8px; border: 1px solid var(--color-border, #cbd5e1); background: transparent; color: var(--color-text, #334155); cursor: pointer; } .btnGhost:hover { background: var(--bg-hover, #f1f5f9); } .btnDangerGhost { padding: 6px 12px; font-size: 12px; border-radius: 8px; border: 1px solid #fecaca; background: transparent; color: #b91c1c; cursor: pointer; } .btnDangerGhost:hover { background: #fef2f2; } .btnPrimary { padding: 8px 16px; font-size: 13px; font-weight: 600; border-radius: 8px; border: none; background: var(--color-primary, #4a6fa5); color: #fff; cursor: pointer; } .btnPrimary:disabled { opacity: 0.5; cursor: not-allowed; } .modalBackdrop { position: fixed; inset: 0; background: rgba(15, 23, 42, 0.5); z-index: 4500; display: flex; align-items: center; justify-content: center; padding: 16px; } .modal { background: var(--color-bg, #fff); color: var(--color-text, #0f172a); border-radius: 12px; padding: 20px 22px; max-width: 420px; width: 100%; box-shadow: 0 24px 48px rgba(0, 0, 0, 0.2); } .modal h3 { margin: 0 0 8px; font-size: 17px; } .modalHint { margin: 0 0 14px; font-size: 13px; color: var(--text-secondary, #64748b); line-height: 1.45; } .modalField { margin-bottom: 12px; } .modalField label { display: block; font-size: 12px; font-weight: 600; margin-bottom: 4px; color: var(--text-secondary, #64748b); } .modalField input { width: 100%; padding: 8px 10px; font-size: 14px; border: 1px solid var(--color-border, #cbd5e1); border-radius: 8px; box-sizing: border-box; } .modalActions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 18px; }