/* Nexus Control — Calendar / Date Picker */

#nxctl-portal .nc-cal {
    background: var(--nc-surface);
    border: 1.5px solid var(--nc-border);
    border-radius: var(--nc-radius-lg);
    overflow: hidden;
    box-shadow: var(--nc-shadow-lg);
    width: 300px;
    user-select: none;
}

#nxctl-portal .nc-cal__header {
    display: flex; align-items: center; justify-content: space-between;
    padding: var(--nc-space-3) var(--nc-space-4);
    background: var(--nc-accent);
    color: #fff;
}
#nxctl-portal .nc-cal__nav {
    width: 28px; height: 28px; border-radius: var(--nc-radius);
    display: flex; align-items: center; justify-content: center;
    cursor: pointer; transition: background var(--nc-dur);
}
#nxctl-portal .nc-cal__nav:hover { background: rgba(255,255,255,.2); }
#nxctl-portal .nc-cal__nav svg { width: 16px; height: 16px; stroke: currentColor; }

#nxctl-portal .nc-cal__title {
    font-weight: 700; font-size: var(--nc-fs-base); cursor: pointer;
    padding: 4px 10px; border-radius: var(--nc-radius-full);
    transition: background var(--nc-dur);
}
#nxctl-portal .nc-cal__title:hover { background: rgba(255,255,255,.2); }

/* Mode tabs */
#nxctl-portal .nc-cal__modes {
    display: flex; background: var(--nc-surface2);
    border-bottom: 1px solid var(--nc-border);
}
#nxctl-portal .nc-cal__mode-btn {
    flex: 1; padding: 7px; text-align: center;
    font-size: var(--nc-fs-xs); font-weight: 600; color: var(--nc-muted);
    cursor: pointer; transition: color var(--nc-dur), border-bottom var(--nc-dur);
    border-bottom: 2px solid transparent;
}
#nxctl-portal .nc-cal__mode-btn.active { color: var(--nc-accent); border-bottom-color: var(--nc-accent); }

/* Days grid */
#nxctl-portal .nc-cal__weekdays {
    display: grid; grid-template-columns: repeat(7,1fr);
    padding: var(--nc-space-2) var(--nc-space-3) 0;
}
#nxctl-portal .nc-cal__weekday {
    text-align: center; font-size: var(--nc-fs-xs); font-weight: 700;
    color: var(--nc-muted); padding: 4px 0;
    text-transform: uppercase; letter-spacing: .04em;
}

#nxctl-portal .nc-cal__days {
    display: grid; grid-template-columns: repeat(7,1fr);
    padding: var(--nc-space-2) var(--nc-space-3) var(--nc-space-3);
    gap: 2px;
}
#nxctl-portal .nc-cal__day {
    aspect-ratio: 1;
    display: flex; align-items: center; justify-content: center;
    font-size: var(--nc-fs-sm); border-radius: var(--nc-radius);
    cursor: pointer; transition: background var(--nc-dur), color var(--nc-dur);
    color: var(--nc-text);
}
#nxctl-portal .nc-cal__day:hover { background: var(--nc-hover); }
#nxctl-portal .nc-cal__day.other-month { color: var(--nc-muted); opacity: .4; }
#nxctl-portal .nc-cal__day.today {
    background: var(--nc-accent-dim); color: var(--nc-accent); font-weight: 700;
}
#nxctl-portal .nc-cal__day.selected {
    background: var(--nc-accent) !important; color: #fff !important; font-weight: 700;
}
#nxctl-portal .nc-cal__day.disabled {
    opacity: .3; cursor: not-allowed;
}

/* Month/Year grids */
#nxctl-portal .nc-cal__months,
#nxctl-portal .nc-cal__years {
    display: grid; grid-template-columns: repeat(3,1fr);
    gap: var(--nc-space-2); padding: var(--nc-space-4);
}
#nxctl-portal .nc-cal__month-btn,
#nxctl-portal .nc-cal__year-btn {
    padding: var(--nc-space-3); text-align: center;
    border-radius: var(--nc-radius); cursor: pointer;
    font-size: var(--nc-fs-sm); font-weight: 500; color: var(--nc-text);
    transition: background var(--nc-dur), color var(--nc-dur);
}
#nxctl-portal .nc-cal__month-btn:hover,
#nxctl-portal .nc-cal__year-btn:hover { background: var(--nc-hover); }
#nxctl-portal .nc-cal__month-btn.selected,
#nxctl-portal .nc-cal__year-btn.selected { background: var(--nc-accent); color: #fff; }

/* Expiry builder */
#nxctl-portal .nc-expiry-builder {
    display: flex; align-items: center; gap: var(--nc-space-2);
    margin-bottom: var(--nc-space-3);
}
#nxctl-portal .nc-expiry-builder .nc-input { text-align: center; width: 70px; flex-shrink: 0; }
#nxctl-portal .nc-expiry-builder .nc-select { flex: 1; }
