/* ======================================
   Brutalsurfcam
   admin.css
   ====================================== */

body[data-page="admin"] {
    background:
        radial-gradient(circle at top left, rgba(14, 165, 233, .16), transparent 30%),
        radial-gradient(circle at top right, rgba(59, 130, 246, .08), transparent 24%),
        radial-gradient(circle at bottom right, rgba(34, 197, 94, .08), transparent 26%),
        linear-gradient(180deg, #f8fcff 0%, #eef7fb 100%);
    color: var(--primary);
    overflow-x: hidden;
}

body[data-page="admin"] header {
    background: rgba(255, 255, 255, .86);
    backdrop-filter: blur(18px);
}

body[data-page="admin"] nav a.active {
    color: #0f4c81;
    font-weight: 700;
}

.admin-hero {
    max-width: 1280px;
    margin: 0 auto;
    padding: 128px 24px 24px;
    display: grid;
    grid-template-columns: 1.4fr .8fr;
    gap: 24px;
    align-items: end;
}

.admin-hero-copy {
    background: linear-gradient(135deg, rgba(255, 255, 255, .94), rgba(241, 248, 255, .84));
    border: 1px solid rgba(0, 53, 102, .08);
    border-radius: 30px;
    padding: 32px;
    box-shadow: var(--shadow);
}

.admin-tag {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 14px;
    padding: 8px 12px;
    border-radius: 999px;
    background: rgba(14, 165, 233, .10);
    color: #0f4c81;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 1.8px;
}

.admin-hero-copy h1 {
    font-size: clamp(2.2rem, 4vw, 4rem);
    margin-bottom: 14px;
    line-height: var(--line-tight);
    letter-spacing: var(--tracking-tight);
}

.admin-hero-copy p {
    color: #5f7187;
    line-height: var(--line-relaxed);
    max-width: 58ch;
}

.admin-hero-tools {
    display: grid;
    gap: 14px;
    padding: 24px;
    border-radius: 28px;
    background: rgba(255, 255, 255, .82);
    border: 1px solid rgba(0, 53, 102, .08);
    box-shadow: var(--shadow);
}

.admin-hero-tools label,
.override-form label,
.panel-head input,
.panel-head select,
.session-manager label,
.inline-field {
    display: grid;
    gap: 8px;
    color: #5f7187;
    font-size: var(--text-sm);
}

.admin-hero-tools input,
.override-form input,
.panel-head input,
.panel-head select,
.session-manager input,
.session-manager select,
.inline-field input,
.panel-select {
    width: 100%;
    border: 1px solid rgba(0, 53, 102, .14);
    border-radius: 14px;
    padding: 12px 14px;
    background: linear-gradient(180deg, rgba(255, 255, 255, .98), rgba(246, 250, 255, .96));
    color: var(--primary);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .6);
}

.admin-button {
    border: 0;
    border-radius: 14px;
    min-height: 48px;
    padding: 12px 16px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, #0ea5e9, #0f4c81);
    color: #fff;
    font-weight: 700;
    cursor: pointer;
    box-shadow: 0 14px 28px rgba(14, 165, 233, .24);
    transition: box-shadow .2s ease, opacity .2s ease, filter .2s ease;
}

.admin-button:hover {
    box-shadow: 0 18px 34px rgba(14, 165, 233, .26);
    filter: brightness(1.02);
}

.admin-button.secondary {
    background: linear-gradient(135deg, #ffffff, #edf6ff);
    color: #0f4c81;
    border: 1px solid rgba(0, 53, 102, .10);
    box-shadow: 0 10px 20px rgba(15, 23, 42, .06);
}

.admin-button.danger {
    background: linear-gradient(135deg, #ff7b7b, #d94848);
    box-shadow: 0 14px 28px rgba(217, 72, 72, .20);
}

.admin-button:disabled {
    opacity: .5;
    box-shadow: none;
    cursor: not-allowed;
    filter: none;
}

.admin-metrics {
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 24px 24px;
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 16px;
}

.metric-card {
    padding: 24px;
    border-radius: 26px;
    background: rgba(255, 255, 255, .9);
    border: 1px solid rgba(0, 53, 102, .08);
    box-shadow: var(--shadow);
}

.metric-card span {
    display: block;
    color: #6b7c91;
    font-size: var(--text-sm);
    margin-bottom: 12px;
}

.metric-card strong {
    font-size: clamp(1.5rem, 2.4vw, 2.2rem);
}

.admin-grid {
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 24px 48px;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}

.admin-panel {
    padding: 26px;
    border-radius: 30px;
    background: rgba(255, 255, 255, .9);
    border: 1px solid rgba(0, 53, 102, .08);
    box-shadow: var(--shadow);
}

.admin-panel-wide {
    grid-column: 1 / -1;
}

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

.panel-head > div {
    min-width: 0;
    flex: 1 1 auto;
}

.panel-head p {
    color: #0ea5e9;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 1.2px;
    margin-bottom: 6px;
}

.panel-head h2 {
    font-size: clamp(1.35rem, 2.2vw, 1.7rem);
    line-height: var(--line-tight);
    white-space: nowrap;
}

.panel-select {
    min-width: 240px;
}

.card-list,
.override-list,
.session-management-list,
.booking-history-stack,
.click-list,
.analytics-stack {
    display: grid;
    gap: 14px;
}

.order-card,
.customer-card,
.override-card,
.booking-user-summary,
.session-card {
    padding: 20px;
    border-radius: 24px;
    background: linear-gradient(180deg, rgba(247, 250, 255, .98), rgba(255, 255, 255, .98));
    border: 1px solid rgba(0, 53, 102, .08);
}

.muted {
    color: #6c7e93;
    font-size: var(--text-sm);
    line-height: var(--line-relaxed);
}

.compact-summary {
    padding: 20px 22px;
}

.summary-topline,
.booking-card-head,
.compact-customer-main,
.override-top,
.session-card-top {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: flex-start;
}

.summary-topline strong,
.compact-customer-main strong,
.booking-card-head strong,
.override-top strong,
.session-card-title strong {
    display: block;
    font-size: 1rem;
    margin-bottom: 4px;
}

.summary-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 38px;
    padding: 8px 12px;
    border-radius: 999px;
    background: rgba(14, 165, 233, .10);
    color: #0f4c81;
    font-size: 12px;
    font-weight: 700;
    white-space: nowrap;
}

.summary-inline-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
    margin-top: 14px;
}

.summary-inline-grid div,
.meta-chip {
    padding: 12px 14px;
    border-radius: 18px;
    background: rgba(14, 165, 233, .08);
}

.summary-inline-grid span,
.meta-chip span {
    display: block;
    font-size: 11px;
    color: #6b7c91;
    margin-bottom: 4px;
}

.summary-inline-grid strong,
.meta-chip strong {
    font-size: 14px;
}

.booking-history-card {
    display: grid;
    gap: 16px;
}

.booking-card-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: flex-end;
}

.booking-detail-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px 18px;
}

.detail-row {
    display: grid;
    grid-template-columns: 120px minmax(0, 1fr);
    gap: 8px;
    padding: 12px 14px;
    border-radius: 16px;
    background: rgba(14, 165, 233, .05);
}

.detail-row span {
    color: #5f7187;
    font-size: var(--text-sm);
}

.detail-row strong {
    font-size: var(--text-sm);
    line-height: 1.5;
    word-break: break-word;
}

.detail-row-wide {
    grid-column: 1 / -1;
}

.booking-total-row {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: center;
    padding: 16px 18px;
    border-radius: 20px;
    background: linear-gradient(135deg, rgba(14, 165, 233, .12), rgba(15, 76, 129, .12));
    color: #0f4c81;
}

.booking-total-row strong {
    font-size: 1rem;
}

.compact-list {
    gap: 12px;
}

.compact-customer-card {
    padding: 18px;
    display: grid;
    gap: 12px;
}

.compact-customer-stats {
    display: inline-flex;
    gap: 8px;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.compact-customer-stats span {
    padding: 8px 10px;
    border-radius: 999px;
    background: rgba(14, 165, 233, .08);
    color: #0f4c81;
    font-size: var(--text-xs);
    font-weight: 700;
}

.compact-customer-fields {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
    align-items: end;
}

.compact-save-button {
    width: 100%;
    min-height: 48px;
}

.override-form,
.session-manager {
    display: grid;
    gap: 14px;
    margin-bottom: 18px;
}

.session-manager {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.override-periods {
    display: flex;
    gap: 16px;
    flex-wrap: wrap;
    color: var(--primary);
}

.session-manager-actions,
.today-operation-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.today-operation-actions .admin-button,
.session-manager-actions .admin-button {
    min-height: 48px;
}

.session-card-title {
    display: grid;
    gap: 4px;
}

.meta-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin-top: 12px;
}

.compact-meta-grid {
    margin-bottom: 14px;
}

.session-card.is-closed {
    border-color: rgba(234, 179, 8, .28);
}

.session-card.is-canceled {
    border-color: rgba(239, 68, 68, .22);
}

.override-card {
    display: grid;
    gap: 12px;
}

.analytics-stack h3 {
    margin-bottom: 14px;
    font-size: 1.05rem;
    letter-spacing: var(--tracking-tight);
}

.traffic-chart-shell {
    min-height: 320px;
}

.line-chart {
    position: relative;
    display: grid;
    grid-template-columns: 1fr 28px;
    gap: 10px;
    align-items: start;
}

.line-chart-svg {
    width: 100%;
    height: auto;
    overflow: visible;
}

.chart-grid-line {
    stroke: rgba(15, 76, 129, .08);
    stroke-width: 1;
}

.chart-line {
    fill: none;
    stroke: #0ea5e9;
    stroke-width: 3.5;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.chart-point {
    fill: #fff;
    stroke: #0ea5e9;
    stroke-width: 3;
}

.chart-label {
    font-size: 11px;
    fill: #5f7187;
    text-anchor: middle;
}

.chart-y-labels {
    display: grid;
    grid-template-rows: repeat(5, 1fr);
    height: 280px;
    justify-items: end;
    color: #5f7187;
    font-size: 11px;
    line-height: 1;
    padding-top: 6px;
}

.click-row {
    display: grid;
    gap: 8px;
}

.click-row-top {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    font-size: 13px;
}

.click-track {
    height: 10px;
    border-radius: 999px;
    background: rgba(15, 76, 129, .10);
    overflow: hidden;
}

.click-fill {
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #f59e0b, #0ea5e9);
}

@media (max-width: 1180px) {
    .admin-hero,
    .admin-grid {
        grid-template-columns: 1fr;
    }

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

    .summary-inline-grid,
    .compact-customer-fields {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

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

    .booking-detail-grid,
    .meta-grid,
    .session-manager,
    .session-manager-actions {
        grid-template-columns: 1fr;
    }

    .detail-row {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 720px) {
    .admin-hero,
    .admin-metrics,
    .admin-grid {
        padding-left: 16px;
        padding-right: 16px;
    }

    .admin-metrics,
    .summary-inline-grid,
    .compact-customer-fields {
        grid-template-columns: 1fr;
    }

    .panel-head,
    .summary-topline,
    .booking-card-head,
    .compact-customer-main,
    .override-top,
    .session-card-top,
    .click-row-top {
        flex-direction: column;
        align-items: flex-start;
    }

    .panel-select {
        min-width: 0;
        width: 100%;
    }

    .booking-card-actions {
        width: 100%;
        justify-content: stretch;
    }

    .booking-card-actions .admin-button {
        flex: 1 1 auto;
    }

    .admin-hero {
        padding-top: 108px;
        gap: 16px;
    }

    .admin-hero-copy,
    .admin-hero-tools,
    .admin-panel {
        border-radius: 24px;
    }

    .admin-hero-copy,
    .admin-hero-tools {
        padding: 20px;
    }

    .metric-card {
        padding: 18px;
        border-radius: 20px;
    }

    .order-card,
    .customer-card,
    .override-card,
    .booking-user-summary,
    .session-card {
        padding: 16px;
        border-radius: 18px;
    }
}
