/**
 * Admin Menu Manager - Page Styles
 * Extends sb-module-* design system from admin.css
 */

/* Rounded main container + allow dropdowns to overflow */
.sb-module-wrap .sb-module-card {
    border-radius: 12px;
}

.sb-module-wrap .sb-module-card-header {
    border-radius: 12px 12px 0 0;
}

.amm-card-active {
    overflow: visible;
}

.amm-card-active .sb-module-card-body {
    overflow: visible;
}

/* ===== Migration Banner ===== */
.amm-migrate-banner {
    display: flex;
    align-items: flex-start;
    gap: 16px;
    padding: 20px 24px;
    margin-bottom: 20px;
    background: linear-gradient(135deg, #eff6ff 0%, #f0f4ff 100%);
    border: 1px solid #bfdbfe;
    border-radius: 12px;
    border-left: 4px solid #3b82f6;
}

.amm-migrate-banner-icon {
    flex-shrink: 0;
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #dbeafe;
    border-radius: 10px;
    color: #2563eb;
}

.amm-migrate-banner-content {
    flex: 1;
    min-width: 0;
}

.amm-migrate-banner-content h3 {
    margin: 0 0 6px;
    font-size: 15px;
    font-weight: 600;
    color: #1e293b;
}

.amm-migrate-banner-content p {
    margin: 0 0 6px;
    font-size: 13px;
    line-height: 1.5;
    color: #475569;
}

.amm-migrate-banner-content p:last-child {
    margin-bottom: 0;
}

.amm-migrate-banner-content p strong {
    color: #1e40af;
    font-weight: 600;
}

.amm-migrate-whats-new {
    margin-top: 10px;
    padding: 8px 12px;
    background: rgba(255,255,255,.6);
    border-radius: 8px;
    font-size: 12.5px;
    line-height: 1.5;
    color: #475569;
}

.amm-migrate-whats-new-label {
    font-weight: 600;
    color: #1e40af;
    margin-right: 4px;
}

.amm-migrate-banner-actions {
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
    align-self: center;
}

.amm-migrate-banner-actions .sb-module-button {
    white-space: nowrap;
    justify-content: center;
}

/* Success state */
.amm-migrate-banner.amm-migrate-success {
    background: linear-gradient(135deg, #f0fdf4 0%, #ecfdf5 100%);
    border-color: #86efac;
    border-left-color: #22c55e;
}

.amm-migrate-success-icon {
    background: #dcfce7 !important;
    color: #16a34a !important;
}

.amm-migrate-banner.amm-migrate-success h3 {
    color: #166534;
}

.amm-migrate-banner.amm-migrate-success p {
    color: #15803d;
}

/* Two-column layout */
.amm-page-layout {
    display: flex;
    gap: 24px;
    align-items: flex-start;
}

.amm-col-main {
    flex: 3;
    min-width: 0;
}

.amm-col-side {
    flex: 1;
    min-width: 260px;
    max-width: 340px;
    position: sticky;
    top: 40px;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

/* Sortable container */
.amm-sortable {
    min-height: 40px;
}

/* Item rows */
.amm-item {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 7px 10px;
    background: #fff;
    border: 1px solid #f0f1f3;
    border-radius: 8px;
    margin-bottom: 4px;
    transition: border-color 0.15s, box-shadow 0.15s;
    position: relative;
}

.amm-item:last-child {
    margin-bottom: 0;
}

.amm-item:hover {
    border-color: #e4e7ec;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.03);
}

/* Drag handle */
.amm-drag {
    cursor: grab;
    color: #c4c9d4;
    font-size: 14px;
    user-select: none;
    width: 16px;
    flex-shrink: 0;
    text-align: center;
    line-height: 1;
    letter-spacing: -1px;
}

.amm-drag:active {
    cursor: grabbing;
}

/* Icon */
.amm-icon {
    color: var(--gray-500, #64748b);
    width: 20px;
    height: 20px;
    font-size: 18px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* SVG/base64 icon (plugins that don't use dashicons) */
.amm-icon-svg {
    width: 20px;
    height: 20px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}

.amm-icon-svg img {
    width: 20px;
    height: 20px;
    display: block;
    filter: brightness(0);
    opacity: 0.5;
}

/* Icon wrapper (positioning context for picker dropdown) */
.amm-icon-wrap {
    position: relative;
    flex-shrink: 0;
}

/* Clickable icon button */
.amm-icon-btn {
    padding: 2px;
    border: 1px solid transparent;
    background: none;
    border-radius: 6px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.15s;
}

.amm-icon-btn:hover {
    border-color: #ddd;
    background: var(--gray-50, #f8fafc);
}

/* Icon picker dropdown */
.amm-icon-picker-dropdown {
    position: absolute;
    top: calc(100% + 4px);
    left: 0;
    z-index: 999999;
    background: #fff;
    border: 1px solid #eceef1;
    border-radius: 8px;
    width: 320px;
    max-height: 280px;
    overflow-y: auto;
    padding: 8px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
}

/* Icon picker search input */
.amm-icon-picker-search {
    width: 100%;
    padding: 6px 8px 6px 28px;
    border: 1px solid #eceef1;
    border-radius: 6px;
    font-size: 12px;
    font-family: inherit;
    color: var(--gray-700, #374151);
    margin-bottom: 6px;
    outline: none;
    background: var(--gray-50, #f8fafc);
    transition: border-color 0.15s, background 0.15s;
}

.amm-icon-picker-search:focus {
    border-color: var(--primary-300, #93c5fd);
    background: #fff;
    box-shadow: 0 0 0 2px var(--primary-100, #dbeafe);
}

.amm-icon-picker-search-wrap {
    position: sticky;
    top: 0;
    z-index: 1;
    background: #fff;
    padding-bottom: 2px;
}

.amm-icon-picker-search-wrap .dashicons-search {
    position: absolute;
    left: 7px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 14px;
    width: 14px;
    height: 14px;
    color: var(--gray-400, #9ca3af);
    pointer-events: none;
}

.amm-icon-picker-no-results {
    padding: 12px;
    text-align: center;
    font-size: 12px;
    color: var(--gray-400, #9ca3af);
    display: none;
}

.amm-icon-picker-grid {
    display: grid;
    grid-template-columns: repeat(8, 1fr);
    gap: 2px;
}

.amm-icon-picker-item {
    width: 34px;
    height: 34px;
    padding: 0;
    border: 1px solid transparent;
    background: none;
    border-radius: 6px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--gray-500, #64748b);
    transition: all 0.1s;
}

.amm-icon-picker-item .dashicons {
    font-size: 18px;
    width: 18px;
    height: 18px;
}

.amm-icon-picker-item:hover {
    background: var(--primary-50, #eff6ff);
    border-color: var(--primary-200, #bfdbfe);
    color: var(--primary-600, #2563eb);
}

/* Child item indentation */
.amm-child-item {
    margin-left: 28px;
    border-left: 2px solid var(--primary-200, #bfdbfe);
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
}

/* Label input */
.amm-label {
    flex: 1;
    min-width: 0;
    padding: 5px 10px;
    border: 1px solid #ddd;
    border-radius: 6px;
    font-size: 14px;
    font-weight: 500;
    color: var(--gray-800, #1e293b);
    background: transparent;
    transition: all 0.15s;
    font-family: inherit;
}

.amm-label:hover {
    border-color: #eceef1;
    background: #fafbfc;
}

.amm-label:focus {
    border-color: var(--primary-300, #93c5fd);
    background: #fff;
    outline: none;
    box-shadow: 0 0 0 3px var(--primary-100, #dbeafe);
}

/* Action buttons */
.amm-btn {
    width: 30px;
    height: 30px;
    padding: 0;
    border: none;
    background: none;
    cursor: pointer;
    border-radius: 6px;
    color: var(--gray-400, #9ca3af);
    transition: all 0.15s;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}

.amm-btn .dashicons {
    font-size: 16px;
    width: 16px;
    height: 16px;
}

.amm-btn:hover {
    color: var(--gray-600, #4b5563);
    background: var(--gray-100, #f1f5f9);
}

.amm-soft-hide-btn:hover {
    color: #d97706 !important;
    background: #fffbeb !important;
}

.amm-hard-hide-btn:hover {
    color: var(--red-500, #ef4444) !important;
    background: var(--red-50, #fef2f2) !important;
}

.amm-restore-btn:hover {
    color: var(--green-600, #16a34a) !important;
    background: var(--green-50, #f0fdf4) !important;
}

/* Separator items */
.amm-sep {
    padding: 3px 10px;
    background: var(--gray-50, #f8fafc);
    border-color: #eceef1;
    border-style: dashed;
}

.amm-sep-line {
    flex: 1;
    height: 1px;
    background: var(--gray-300, #d1d5db);
}

.amm-sep-label {
    font-size: 10px;
    color: var(--gray-400, #9ca3af);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    flex-shrink: 0;
    padding: 0 4px;
}

.amm-remove-sep,
.amm-remove-spacer {
    color: var(--gray-300, #d1d5db) !important;
}

.amm-remove-sep:hover,
.amm-remove-spacer:hover {
    color: var(--red-500, #ef4444) !important;
    background: var(--red-50, #fef2f2) !important;
}

/* Spacer items */
.amm-spacer {
    padding: 8px 10px;
    background: transparent;
    border-color: #eceef1;
    border-style: dashed;
}

.amm-spacer-visual {
    flex: 1;
    height: 16px;
    border-radius: 4px;
    background: repeating-linear-gradient(
        -45deg,
        transparent,
        transparent 3px,
        #e2e5ea 3px,
        #e2e5ea 5px
    );
}

.amm-spacer-label {
    font-size: 10px;
    color: var(--gray-400, #9ca3af);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    flex-shrink: 0;
    padding: 0 4px;
}

/* Roles dropdown */
.amm-roles-wrap {
    position: relative;
    flex-shrink: 0;
}

.amm-roles-btn {
    min-width: 100px;
    padding: 4px 8px;
    text-align: left;
    cursor: pointer;
    background: #fff;
    border: 1px solid #eceef1;
    border-radius: 6px;
    font-size: 12px;
    color: var(--gray-600, #4b5563);
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 4px;
    font-family: inherit;
    transition: all 0.15s;
}

.amm-roles-btn:hover {
    border-color: #dfe2e8;
}

.amm-roles-btn.has-roles {
    background: var(--primary-50, #eff6ff);
    border-color: var(--primary-300, #93c5fd);
    color: var(--primary-700, #1d4ed8);
}

.amm-roles-dropdown {
    display: none;
    position: absolute;
    top: calc(100% + 4px);
    right: 0;
    z-index: 999999;
    background: #fff;
    border: 1px solid #eceef1;
    border-radius: 8px;
    min-width: 200px;
    max-height: 240px;
    overflow-y: auto;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
}

.amm-roles-dropdown label {
    display: flex;
    align-items: center;
    padding: 8px 14px;
    font-size: 13px;
    cursor: pointer;
    transition: background 0.1s;
    border-bottom: 1px solid var(--gray-50, #f8fafc);
    margin: 0;
    color: var(--gray-700, #374151);
}

.amm-roles-dropdown label:hover {
    background: var(--gray-50, #f8fafc);
}

.amm-roles-dropdown label:last-child {
    border-bottom: none;
}

.amm-roles-dropdown input[type="checkbox"] {
    margin: 0 10px 0 0;
    width: 16px;
    height: 16px;
    accent-color: var(--primary-500, #3b82f6);
}

/* ===== Users dropdown button ===== */
.amm-users-wrap {
    position: relative;
    flex-shrink: 0;
}

.amm-users-btn {
    display: flex;
    align-items: center;
    gap: 4px;
    padding: 4px 6px;
    cursor: pointer;
    background: #fff;
    border: 1px solid #eceef1;
    border-radius: 6px;
    font-family: inherit;
    color: var(--gray-400, #9ca3af);
    transition: all 0.15s;
}

.amm-users-btn .dashicons {
    font-size: 16px;
    width: 16px;
    height: 16px;
    line-height: 16px;
}

.amm-users-btn:hover {
    border-color: #dfe2e8;
    color: var(--gray-600, #4b5563);
}

.amm-users-btn.has-users {
    background: var(--primary-50, #eff6ff);
    border-color: var(--primary-300, #93c5fd);
    color: var(--primary-700, #1d4ed8);
}

.amm-users-count {
    font-size: 10px;
    font-weight: 700;
    min-width: 16px;
    height: 16px;
    line-height: 16px;
    text-align: center;
    background: var(--primary-500, #3b82f6);
    color: #fff;
    border-radius: 8px;
    padding: 0 4px;
}

.amm-users-dropdown {
    display: none;
    position: absolute;
    top: calc(100% + 4px);
    right: 0;
    z-index: 999999;
    background: #fff;
    border: 1px solid #eceef1;
    border-radius: 8px;
    min-width: 260px;
    max-height: 320px;
    overflow-y: auto;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
}

.amm-users-dropdown-header {
    padding: 8px 12px 6px;
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--gray-400, #9ca3af);
    border-bottom: 1px solid var(--gray-100, #f1f5f9);
}

/* User chips */
.amm-user-chips {
    padding: 8px 10px 4px;
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
}

.amm-user-chips:empty {
    display: none;
}

.amm-user-chip {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    padding: 2px 6px 2px 8px;
    background: var(--primary-50, #eff6ff);
    border: 1px solid var(--primary-200, #bfdbfe);
    border-radius: 12px;
    font-size: 11px;
    color: var(--primary-700, #1d4ed8);
    line-height: 1.4;
    max-width: 160px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.amm-user-chip-remove {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 14px;
    height: 14px;
    padding: 0;
    border: none;
    background: none;
    color: var(--primary-400, #60a5fa);
    font-size: 14px;
    font-weight: 600;
    line-height: 1;
    cursor: pointer;
    border-radius: 50%;
    flex-shrink: 0;
    transition: all 0.1s;
}

.amm-user-chip-remove:hover {
    background: var(--primary-200, #bfdbfe);
    color: var(--primary-800, #1e40af);
}

/* User search input */
.amm-user-search-wrap {
    padding: 6px 10px;
}

.amm-user-search {
    width: 100%;
    padding: 6px 10px;
    border: 1px solid var(--gray-200, #e5e7eb);
    border-radius: 6px;
    font-size: 12px;
    font-family: inherit;
    color: var(--gray-700, #374151);
    outline: none;
    background: var(--gray-50, #f8fafc);
    transition: border-color 0.15s, background 0.15s;
}

.amm-user-search:focus {
    border-color: var(--primary-300, #93c5fd);
    background: #fff;
    box-shadow: 0 0 0 2px var(--primary-100, #dbeafe);
}

/* User search results */
.amm-user-results {
    max-height: 140px;
    overflow-y: auto;
}

.amm-user-results-hint {
    padding: 8px 14px;
    font-size: 11px;
    color: var(--gray-400, #9ca3af);
    font-style: italic;
}

.amm-user-result {
    display: flex;
    align-items: center;
    padding: 6px 14px;
    font-size: 12px;
    cursor: pointer;
    transition: background 0.1s;
    border-bottom: 1px solid var(--gray-50, #f8fafc);
    margin: 0;
    color: var(--gray-700, #374151);
}

.amm-user-result:hover {
    background: var(--gray-50, #f8fafc);
}

.amm-user-result-selected {
    background: var(--primary-50, #eff6ff);
}

.amm-user-result-selected:hover {
    background: var(--primary-50, #eff6ff);
}

.amm-user-result input[type="checkbox"] {
    margin: 0 8px 0 0;
    width: 14px;
    height: 14px;
    accent-color: var(--primary-500, #3b82f6);
    flex-shrink: 0;
}

.amm-user-result-name {
    font-weight: 500;
}

.amm-user-result-login {
    color: var(--gray-400, #9ca3af);
    font-size: 11px;
    margin-left: 4px;
}

/* Sortable states */
.amm-sortable-placeholder {
    background: var(--primary-50, #eff6ff);
    border: 2px dashed var(--primary-300, #93c5fd);
    border-radius: 8px;
    margin-bottom: 4px;
}

.amm-item.ui-sortable-helper {
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12) !important;
    z-index: 99999 !important;
    transform: rotate(0.3deg);
}

/* Sidebar hidden items styling */
.amm-card-hidden .amm-item {
    opacity: 0.8;
    background: var(--gray-50, #f8fafc);
    padding: 6px 8px;
    gap: 6px;
}

.amm-card-hidden .amm-item:hover {
    opacity: 1;
    background: #fff;
}

.amm-card-hidden .amm-icon {
    width: 18px;
    height: 18px;
    font-size: 16px;
}

.amm-card-hidden .amm-label {
    font-size: 13px;
    padding: 3px 6px;
}

/* Soft hide header */
.amm-soft-header-bar {
    background: linear-gradient(to bottom, #fffbeb, #fef3c7) !important;
    border-bottom-color: #fde68a !important;
}

.amm-soft-header-bar .sb-module-card-title {
    color: #92400e;
}

/* Hard hide header */
.amm-hard-header-bar {
    background: linear-gradient(to bottom, #fef2f2, #fee2e2) !important;
    border-bottom-color: #fecaca !important;
}

.amm-hard-header-bar .sb-module-card-title {
    color: #991b1b;
}

.amm-sidebar-hint {
    margin: 0 0 8px;
    font-size: 11px;
    color: var(--gray-400, #9ca3af);
    line-height: 1.5;
    padding: 0 2px;
}

/* Help card */
.amm-card-help {
    border: 1px solid #f0f1f3 !important;
    background: var(--gray-50, #f8fafc) !important;
}

.amm-help-title {
    margin: 0 0 12px;
    font-size: 13px;
    font-weight: 600;
    color: var(--gray-600, #4b5563);
    display: flex;
    align-items: center;
    gap: 6px;
}

.amm-help-list {
    margin: 0;
    padding: 0;
    list-style: none;
}

.amm-help-list li {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    font-size: 12px;
    color: var(--gray-500, #64748b);
    line-height: 1.5;
    padding: 5px 0;
    border-bottom: 1px solid #f0f1f3;
}

.amm-help-list li:last-child {
    border-bottom: none;
    padding-bottom: 0;
}

.amm-help-icon {
    flex-shrink: 0;
    width: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--gray-400, #9ca3af);
    font-size: 14px;
    letter-spacing: -1px;
    margin-top: 1px;
}

/* Compact empty state for sidebar cards (overrides sb-module-empty) */
.amm-empty-compact {
    padding: 16px 12px;
}

.amm-empty-compact .sb-module-empty-text {
    font-size: 11px;
    font-style: italic;
    margin: 0;
    max-width: none;
}

/* Loading state */
.amm-loading-placeholder {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 48px 16px;
    color: var(--gray-400, #9ca3af);
    gap: 12px;
}

.amm-loading-placeholder p {
    margin: 0;
    font-size: 13px;
}

/* Toast notification */
.amm-toast {
    position: fixed;
    top: 48px;
    right: 24px;
    z-index: 999999;
    background: var(--green-600, #16a34a);
    color: white;
    padding: 12px 20px;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 500;
    display: flex;
    align-items: center;
    gap: 8px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);
    animation: amm-slide-in 0.3s ease-out;
}

.amm-toast .dashicons {
    font-size: 18px;
    width: 18px;
    height: 18px;
}

/* Column header labels (shown above items on wider screens) */
.amm-col-labels {
    display: none;
    padding: 0 10px 6px;
    gap: 8px;
    align-items: center;
    font-size: 11px;
    font-weight: 600;
    color: var(--gray-400, #9ca3af);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

@media (min-width: 1024px) {
    .amm-col-labels {
        display: flex;
    }
}

.amm-col-labels .amm-col-drag { width: 16px; flex-shrink: 0; }
.amm-col-labels .amm-col-icon { width: 28px; flex-shrink: 0; }
.amm-col-labels .amm-col-label { flex: 1; }
.amm-col-labels .amm-col-softhide { width: 30px; flex-shrink: 0; }
.amm-col-labels .amm-col-roles { width: 120px; flex-shrink: 0; }
.amm-col-labels .amm-col-actions { width: 34px; flex-shrink: 0; }

/* Animations */
@keyframes amm-spin {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

@keyframes amm-slide-in {
    from { opacity: 0; transform: translateY(-12px); }
    to { opacity: 1; transform: translateY(0); }
}

/* ===== Submenu Bulk Toggle Buttons ===== */
.amm-submenu-bulk-toggle {
    width: 26px;
    height: 26px;
    padding: 0;
    border: 1px solid var(--gray-200, #e5e7eb);
    background: #fff;
    cursor: pointer;
    border-radius: 6px;
    color: var(--gray-400, #9ca3af);
    transition: all 0.15s;
    display: flex;
    align-items: center;
    justify-content: center;
}

.amm-submenu-bulk-toggle .dashicons {
    font-size: 14px;
    width: 14px;
    height: 14px;
    transition: transform 0.25s ease;
}

.amm-submenu-bulk-toggle.amm-expanded .dashicons {
    transform: rotate(180deg);
}

.amm-submenu-bulk-toggle:hover {
    color: var(--primary-600, #2563eb);
    border-color: var(--primary-300, #93c5fd);
    background: var(--primary-50, #eff6ff);
}

/* ===== Submenu Support ===== */

/* Items with submenus use flex-wrap so the panel can drop to a new row */
.amm-item.amm-has-submenu {
    flex-wrap: wrap;
}

/* Submenu toggle chevron */
.amm-submenu-toggle {
    width: 22px;
    height: 22px;
    padding: 0;
    border: none;
    background: none;
    cursor: pointer;
    border-radius: 4px;
    color: var(--gray-400, #9ca3af);
    transition: all 0.15s;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}

.amm-submenu-toggle .dashicons {
    font-size: 14px;
    width: 14px;
    height: 14px;
    transition: transform 0.2s ease;
}

.amm-submenu-toggle:hover {
    color: var(--primary-600, #2563eb);
    background: var(--primary-50, #eff6ff);
}

.amm-submenu-toggle.amm-toggle-open {
    color: var(--primary-600, #2563eb);
}

/* Submenu panel (full-width row in flex-wrap container) */
.amm-submenu-panel {
    flex-basis: calc(100% - 16px);
    min-width: 0;
    margin-top: 6px;
    padding: 8px 8px 8px 20px;
    border-top: 1px dashed var(--gray-200, #e5e7eb);
    border-left: 2px solid var(--primary-200, #bfdbfe);
    margin-left: 16px;
    border-radius: 0 0 0 6px;
    box-sizing: border-box;
}

/* Submenu sortable container */
.amm-sub-sortable {
    min-height: 4px;
}

/* Submenu item rows */
.amm-sub-item {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 5px 8px;
    background: var(--gray-50, #f8fafc);
    border: 1px solid #f0f1f3;
    border-radius: 6px;
    margin-bottom: 3px;
    transition: border-color 0.15s, box-shadow 0.15s;
    position: relative;
}

.amm-sub-item:last-child {
    margin-bottom: 0;
}

.amm-sub-item:hover {
    border-color: #e4e7ec;
    background: #fff;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.03);
}

.amm-sub-item .amm-drag {
    font-size: 12px;
    color: #d4d8e0;
    width: 14px;
}

/* Submenu label input */
.amm-sub-label {
    flex: 1;
    min-width: 0;
    padding: 3px 8px;
    border: 1px solid var(--gray-200, #e5e7eb) !important;
    border-radius: 5px;
    font-size: 13px;
    font-weight: 500;
    color: var(--gray-700, #374151);
    background: transparent;
    transition: all 0.15s;
    font-family: inherit;
}

.amm-sub-label:hover {
    border-color: var(--gray-200, #e5e7eb);
    background: #fff;
}

.amm-sub-label:focus {
    border-color: var(--primary-300, #93c5fd);
    background: #fff;
    outline: none;
    box-shadow: 0 0 0 2px var(--primary-100, #dbeafe);
}

/* Submenu action buttons */
.amm-sub-hide-btn:hover {
    color: var(--red-500, #ef4444) !important;
    background: var(--red-50, #fef2f2) !important;
}

.amm-sub-restore-btn:hover {
    color: var(--green-600, #16a34a) !important;
    background: var(--green-50, #f0fdf4) !important;
}

/* Hidden submenu items */
.amm-sub-item.amm-sub-hidden {
    opacity: 0.6;
    background: transparent;
    border-style: dashed;
    border-color: #e5e7eb;
}

.amm-sub-item.amm-sub-hidden:hover {
    opacity: 0.9;
}

.amm-sub-item.amm-sub-hidden .amm-sub-label {
    text-decoration: line-through;
    color: var(--gray-400, #9ca3af);
}

/* Submenu hidden zone */
.amm-submenu-hidden-zone {
    margin-top: 6px;
    padding-top: 6px;
    border-top: 1px dashed var(--gray-200, #e5e7eb);
}

.amm-submenu-hidden-header {
    font-size: 10px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--gray-400, #9ca3af);
    padding: 2px 4px 6px;
    display: flex;
    align-items: center;
    gap: 4px;
}

/* Submenu sortable placeholder */
.amm-sub-sortable-placeholder {
    background: var(--primary-50, #eff6ff);
    border: 2px dashed var(--primary-200, #bfdbfe);
    border-radius: 6px;
    margin-bottom: 3px;
}

.amm-sub-item.ui-sortable-helper {
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1) !important;
    z-index: 99999 !important;
    background: #fff !important;
}

/* Submenu count badge on toggle */
.amm-submenu-count {
    font-size: 10px;
    font-weight: 600;
    color: var(--gray-400, #9ca3af);
    margin-left: 1px;
}

/* Responsive */
@media (max-width: 1200px) {
    .amm-col-side {
        min-width: 220px;
        max-width: 280px;
    }
    .amm-roles-btn { min-width: 80px; }
}

@media (max-width: 960px) {
    .amm-page-layout {
        flex-direction: column;
    }
    .amm-col-side {
        position: static;
        max-width: none;
        flex-direction: row;
    }
    .amm-col-side > .sb-module-card {
        flex: 1;
    }
}

@media (max-width: 782px) {
    .amm-roles-wrap, .amm-users-wrap { display: none; }
    .amm-item { padding: 6px 8px; gap: 6px; }
    .amm-col-side {
        flex-direction: column;
    }
    .amm-icon-picker-dropdown {
        width: 240px;
    }
    .amm-icon-picker-grid {
        grid-template-columns: repeat(6, 1fr);
    }
}

input.amm-label {
    border: 1px solid #ddd;
}