﻿
/* =========================================================
   CODEK.NEXUS - JARVIS COMMAND CENTER
   Theme: Dark Navy / Neon Cyan / Holographic
========================================================= */

:root {
    --j-bg: #030b14;
    --j-bg-2: #061522;
    --j-panel: rgba(8, 27, 44, .94);
    --j-panel-2: rgba(10, 36, 56, .85);
    --j-cyan: #37eaff;
    --j-blue: #1689c5;
    --j-purple: #a879ff;
    --j-green: #39e6b2;
    --j-orange: #ffbc62;
    --j-red: #ff627c;
    --j-text: #d9f5ff;
    --j-muted: #7393a9;
    --j-border: rgba(68, 193, 238, .23);
    --j-glow: 0 0 22px rgba(55, 234, 255, .13);
}

* {
    box-sizing: border-box;
}

html, body {
    width: 100%;
    min-height: 100%;
    margin: 0;
    background: var(--j-bg);
    color: var(--j-text);
    font-family: 'Rajdhani', sans-serif;
}

body {
    overflow: hidden;
}

button, input, textarea, select {
    font: inherit;
}

button {
    cursor: pointer;
}

.jarvis-shell {
    width: 100%;
    height: 100vh;
    min-height: 650px;
    display: grid;
    grid-template-rows: 58px minmax(0, 1fr);
    overflow: hidden;
    position: relative;
    background: radial-gradient(ellipse at 55% 40%, rgba(0, 139, 195, .12), transparent 45%), linear-gradient(rgba(48, 156, 205, .035) 1px, transparent 1px), linear-gradient(90deg, rgba(48, 156, 205, .035) 1px, transparent 1px), #030b14;
    background-size: auto, 48px 48px, 48px 48px, auto;
}

/* TOP BAR */

.jarvis-topbar {
    height: 58px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 15px;
    padding: 0 20px;
    border-bottom: 1px solid var(--j-border);
    background: rgba(2, 9, 17, .96);
    z-index: 20;
}

.brand {
    display: flex;
    align-items: center;
    gap: 12px;
    color: white;
    font-family: 'Orbitron', sans-serif;
    font-size: 14px;
    font-weight: 800;
    letter-spacing: 5px;
    white-space: nowrap;
}

    .brand span {
        color: var(--j-cyan);
        font-size: 9px;
        letter-spacing: 3px;
    }

.top-status {
    display: flex;
    align-items: center;
    gap: 19px;
    color: var(--j-muted);
    font-family: 'Orbitron', sans-serif;
    font-size: 9px;
    letter-spacing: 1.5px;
    white-space: nowrap;
}

.status-dot {
    display: inline-block;
    width: 7px;
    height: 7px;
    margin-right: 6px;
    border-radius: 50%;
    background: var(--j-green);
    box-shadow: 0 0 10px var(--j-green);
}

.jarvis-clock {
    color: var(--j-cyan);
    font-size: 12px;
}

/* MAIN GRID */

.jarvis-workspace {
    display: grid;
    grid-template-columns: 180px 175px minmax(300px, 1fr) 235px;
    min-height: 0;
    overflow: hidden;
}

.side-panel {
    min-height: 0;
    overflow-y: auto;
    padding: 12px;
    background: rgba(2, 12, 22, .8);
    scrollbar-width: thin;
    scrollbar-color: var(--j-blue) transparent;
}

.left-panel {
    border-right: 1px solid var(--j-border);
}

.right-panel {
    border-left: 1px solid var(--j-border);
}

/* NAVIGATION */

.jarvis-nav {
    display: flex;
    flex-direction: column;
    gap: 5px;
}

    .jarvis-nav a,
    .jarvis-nav button {
        display: flex;
        align-items: center;
        gap: 10px;
        width: 100%;
        padding: 10px;
        border: 1px solid transparent;
        border-radius: 5px;
        background: transparent;
        color: #9dbbce;
        text-align: left;
        text-decoration: none;
        font-size: 13px;
        transition: .2s ease;
    }

        .jarvis-nav a:hover,
        .jarvis-nav button:hover,
        .jarvis-nav .active {
            border-color: var(--j-border);
            background: rgba(23, 134, 183, .14);
            color: var(--j-cyan);
            box-shadow: inset 3px 0 var(--j-cyan);
        }

.nav-icon {
    width: 20px;
    color: var(--j-cyan);
    text-align: center;
}

/* PANELS */

.panel-section {
    padding: 11px;
    margin-bottom: 10px;
    border: 1px solid var(--j-border);
    border-radius: 7px;
    background: linear-gradient(145deg, var(--j-panel-2), var(--j-panel));
    box-shadow: var(--j-glow);
}

.section-title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 10px;
    color: #8ddff2;
    font-family: 'Orbitron', sans-serif;
    font-size: 9px;
    letter-spacing: 1.7px;
    text-transform: uppercase;
}

.muted {
    color: var(--j-muted);
}

.info-card {
    padding: 10px;
    margin-bottom: 7px;
    border: 1px solid rgba(75, 169, 212, .18);
    border-radius: 5px;
    background: rgba(7, 27, 44, .82);
}

.info-value {
    color: white;
    font-size: 23px;
    font-weight: 700;
}

.info-description {
    color: var(--j-muted);
    font-size: 11px;
}

.metric-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 8px;
    padding: 6px 0;
    border-bottom: 1px solid rgba(75, 169, 212, .1);
    font-size: 12px;
}

    .metric-row:last-child {
        border-bottom: 0;
    }

    .metric-row strong {
        color: var(--j-cyan);
    }

/* STATUS BADGES */

.badge-online,
.badge-warning,
.badge-offline {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 3px 7px;
    border-radius: 4px;
    font-size: 9px;
    font-weight: 700;
    white-space: nowrap;
}

.badge-online {
    color: var(--j-green);
    background: rgba(57, 230, 178, .1);
}

.badge-warning {
    color: var(--j-orange);
    background: rgba(255, 188, 98, .1);
}

.badge-offline {
    color: var(--j-red);
    background: rgba(255, 98, 124, .1);
}

/* CENTER AREA */

.jarvis-center {
    min-width: 0;
    min-height: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 12px;
    overflow-y: auto;
}

.center-status {
    display: flex;
    align-items: center;
    justify-content: space-between;
    color: var(--j-muted);
    font-family: 'Orbitron', sans-serif;
    font-size: 9px;
    letter-spacing: 2px;
}

.core-stage {
    min-height: 220px;
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    overflow: hidden;
    border: 1px solid var(--j-border);
    border-radius: 8px;
    background: radial-gradient(ellipse at center, rgba(0, 172, 216, .15), transparent 65%), rgba(4, 18, 32, .75);
}

.core-rings {
    width: min(330px, 55%);
    aspect-ratio: 1;
    display: grid;
    place-items: center;
    position: relative;
    border: 1px solid rgba(55, 234, 255, .22);
    border-radius: 50%;
    box-shadow: 0 0 50px rgba(55, 234, 255, .1);
}

    .core-rings::before,
    .core-rings::after {
        content: "";
        position: absolute;
        inset: 10%;
        border: 2px dashed rgba(55, 234, 255, .35);
        border-radius: 50%;
        animation: core-spin 25s linear infinite;
    }

    .core-rings::after {
        inset: 23%;
        border: 1px solid rgba(55, 234, 255, .4);
        animation-direction: reverse;
        animation-duration: 15s;
    }

.core-glow {
    width: 36%;
    aspect-ratio: 1;
    border-radius: 50%;
    background: radial-gradient(circle, #e9ffff 0 7%, #65edff 25%, #1689c5 52%, transparent 75%);
    box-shadow: 0 0 35px var(--j-cyan), 0 0 90px rgba(55, 234, 255, .45);
    animation: core-pulse 3s ease-in-out infinite;
}

.core-caption {
    position: absolute;
    bottom: 12px;
    color: var(--j-cyan);
    font-family: 'Orbitron', sans-serif;
    font-size: 9px;
    letter-spacing: 4px;
}

/* DASHBOARD CARDS */

.dashboard-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 9px;
}

.dashboard-card {
    min-width: 0;
    padding: 11px;
    border: 1px solid var(--j-border);
    border-radius: 7px;
    background: linear-gradient(145deg, rgba(11, 39, 60, .94), rgba(4, 18, 32, .96));
    box-shadow: var(--j-glow);
}

    .dashboard-card.wide {
        grid-column: span 2;
    }

.card-title {
    margin-bottom: 10px;
    color: #9de8f7;
    font-family: 'Orbitron', sans-serif;
    font-size: 9px;
    letter-spacing: 1.6px;
}

.card-content {
    min-width: 0;
}

/* AGENTS */

.agent-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 7px;
}

.agent-card {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 9px;
    border: 1px solid var(--j-border);
    border-radius: 5px;
    background: rgba(6, 27, 44, .85);
}

.agent-icon {
    width: 32px;
    height: 32px;
    display: grid;
    place-items: center;
    border-radius: 6px;
    background: rgba(55, 234, 255, .12);
    color: var(--j-cyan);
    font-size: 16px;
}

.agent-name {
    color: var(--j-text);
    font-size: 12px;
    font-weight: 700;
}

.agent-state {
    color: var(--j-green);
    font-size: 10px;
}

/* PROVIDERS */

.provider-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 6px;
}

.provider-item {
    display: flex;
    align-items: center;
    gap: 7px;
    padding: 8px;
    border: 1px solid var(--j-border);
    border-radius: 5px;
    background: rgba(5, 25, 42, .9);
    font-size: 11px;
}

/* CHARTS */

.chart-container {
    width: 100%;
    min-height: 130px;
    position: relative;
}

    .chart-container canvas {
        width: 100% !important;
        max-width: 100%;
    }

/* QUICK COMMANDS */

.quick-command {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
    padding: 9px;
    margin-bottom: 6px;
    border: 1px solid var(--j-border);
    border-radius: 5px;
    background: rgba(8, 33, 52, .85);
    color: var(--j-text);
    text-align: left;
    font-size: 12px;
    transition: .2s ease;
}

    .quick-command:hover {
        border-color: var(--j-cyan);
        color: var(--j-cyan);
        background: rgba(18, 83, 110, .3);
    }

/* ACTIVITY FEED */

.activity-item {
    display: flex;
    gap: 8px;
    padding: 9px 0;
    border-bottom: 1px solid rgba(75, 169, 212, .12);
    font-size: 11px;
}

.activity-icon {
    color: var(--j-cyan);
}

.activity-text {
    color: #b8d8e8;
}

.activity-time {
    color: var(--j-muted);
    font-size: 9px;
}

/* VOICE COMMAND */

.command-area {
    width: 100%;
    padding: 11px;
    border: 1px solid rgba(55, 234, 255, .4);
    border-radius: 30px;
    background: rgba(4, 20, 34, .96);
    box-shadow: 0 0 25px rgba(55, 234, 255, .15);
}

.command-box {
    display: flex;
    align-items: center;
    gap: 10px;
}

    .command-box input {
        flex: 1;
        min-width: 0;
        padding: 8px;
        border: 0;
        outline: 0;
        background: transparent;
        color: white;
    }

        .command-box input::placeholder {
            color: var(--j-muted);
            letter-spacing: 1.5px;
        }

    .command-box button {
        width: 34px;
        height: 34px;
        border: 1px solid var(--j-border);
        border-radius: 50%;
        background: rgba(18, 91, 120, .2);
        color: var(--j-cyan);
    }

.jarvis-footer {
    color: var(--j-muted);
    font-size: 9px;
    letter-spacing: 2px;
    text-align: center;
}

/* ANIMATIONS */

@keyframes core-spin {
    to {
        transform: rotate(360deg);
    }
}

@keyframes core-pulse {
    50% {
        transform: scale(1.14);
        opacity: .75;
    }
}

/* RESPONSIVE */

@media (max-width: 1250px) {
    .jarvis-workspace {
        grid-template-columns: 165px 150px minmax(280px, 1fr) 200px;
    }

    .top-status {
        gap: 10px;
    }
}

@media (max-width: 1000px) {
    .jarvis-workspace {
        grid-template-columns: 165px minmax(0, 1fr);
    }

    .right-panel,
    .overview-panel {
        display: none;
    }
}

@media (max-width: 650px) {
    body {
        overflow: auto;
    }

    .jarvis-shell {
        height: auto;
        min-height: 100vh;
        overflow: visible;
    }

    .jarvis-workspace {
        display: flex;
        flex-direction: column;
        overflow: visible;
    }

    .left-panel {
        display: none;
    }

    .jarvis-center {
        overflow: visible;
    }

    .core-stage {
        min-height: 250px;
    }

    .dashboard-grid {
        grid-template-columns: 1fr;
    }

    .dashboard-card.wide {
        grid-column: span 1;
    }

    .top-status .optional {
        display: none;
    }

    .brand {
        font-size: 11px;
        letter-spacing: 3px;
    }
}

/* =========================================================
   JARVIS DASHBOARD - LAYOUT REFINEMENT
========================================================= */

/* Yan panellere daha fazla alan */
.jarvis-workspace {
    grid-template-columns: 190px 190px minmax(300px, 1fr) 250px;
}

/* Grafiklerin kapladığı alanı azalt */
.chart-container {
    height: 105px;
    min-height: 105px;
}

.dashboard-card {
    padding: 10px;
}

/* Merkez hologramının tamamını göster */
.core-stage {
    flex: 0 0 235px;
    min-height: 235px;
}

.core-rings {
    width: min(220px, 42%);
    max-width: 220px;
}

/* Yan panellerin içeriğini daha dengeli göster */
.side-panel {
    padding: 13px;
}

.panel-section {
    padding: 12px;
}

/* Orta alandaki grafik kartları daha kompakt */
.dashboard-grid {
    gap: 8px;
}

.dashboard-card .card-title {
    margin-bottom: 7px;
}

/* Daha küçük ekranlarda sütunları koru */
@media (max-width: 1250px) {
    .jarvis-workspace {
        grid-template-columns: 170px 165px minmax(280px, 1fr) 215px;
    }
}

@media (max-width: 1000px) {
    .jarvis-workspace {
        grid-template-columns: 165px minmax(0, 1fr);
    }
}

/* JARVIS CORE VE ALT KOMUT ALANI İYİLEŞTİRMELERİ */

/* Holografik çekirdeği büyüt */
.core-stage {
    flex: 0 0 290px;
    min-height: 290px;
}

.core-rings {
    width: min(290px, 48%);
    max-width: 290px;
}

/* Komut alanını ekranın altına sabitle */
.jarvis-center {
    position: relative;
    min-height: 0;
}

.command-area {
    order: 10;
    margin-top: auto;
    position: sticky;
    bottom: 0;
    z-index: 15;
    flex-shrink: 0;
    background: rgba(4, 20, 34, .98);
}

/* Alt bilgi komut alanının üzerinde kalsın */
.jarvis-footer {
    order: 9;
    flex-shrink: 0;
    padding: 5px 0;
}

/* Merkez içerik taşmasını önle */
.dashboard-grid {
    flex-shrink: 0;
}

/* Küçük ekranlarda çekirdek */
@media (max-width: 650px) {
    .core-stage {
        flex-basis: 250px;
        min-height: 250px;
    }

    .core-rings {
        width: min(250px, 70%);
    }

    .command-area {
        position: sticky;
        bottom: 8px;
    }
}

/* =========================================
   JARVIS CORE - BOŞLUK VE SCROLLBAR DÜZENİ
========================================= */

/* Çekirdeğin üstünde ve altında 30px boşluk */
.core-stage {
    flex: 0 0 350px;
    min-height: 350px;
    padding: 30px 0;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: visible;
}

/* Hologram dairesi */
.core-rings {
    width: min(290px, 48%);
    max-width: 290px;
    flex-shrink: 0;
}

/* Tüm tarayıcı kaydırma çubukları */
* {
    scrollbar-width: thin;
    scrollbar-color: #1689c5 #061522;
}

    /* Chrome, Edge ve Safari */
    *::-webkit-scrollbar {
        width: 8px;
        height: 8px;
    }

    *::-webkit-scrollbar-track {
        background: #061522;
        border-radius: 10px;
    }

    *::-webkit-scrollbar-thumb {
        background: linear-gradient( 180deg, #37eaff, #08769e );
        border: 1px solid #061522;
        border-radius: 10px;
        box-shadow: 0 0 8px rgba(55, 234, 255, .25);
    }

        *::-webkit-scrollbar-thumb:hover {
            background: #55efff;
        }

/* Orta panelin kaydırma çubuğu */
.jarvis-center {
    scrollbar-width: thin;
    scrollbar-color: #1689c5 #061522;
}

/* Küçük ekranlarda çekirdeğin boşluklarını koru */
@media (max-width: 650px) {
    .core-stage {
        flex-basis: 310px;
        min-height: 310px;
        padding: 30px 0;
    }

    .core-rings {
        width: min(250px, 70%);
    }
}


/* =========================================
   NEXORA MODAL VE SAĞLAYICI YÖNETİMİ
========================================= */
.nexora-modal-open { overflow: hidden; }

.nexora-modal-overlay {
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
    background: rgba(1, 8, 16, .82);
    backdrop-filter: blur(12px);
    opacity: 0;
    visibility: hidden;
    transition: opacity .22s ease, visibility .22s ease;
}

.nexora-modal-overlay.active {
    opacity: 1;
    visibility: visible;
}

.nexora-modal-panel {
    width: min(980px, 100%);
    max-height: min(88vh, 900px);
    display: flex;
    flex-direction: column;
    overflow: hidden;
    color: #d9f5ff;
    background: linear-gradient(145deg, #0b1b2a, #07121f 72%);
    border: 1px solid rgba(55, 234, 255, .34);
    border-radius: 18px;
    box-shadow: 0 24px 90px rgba(0, 0, 0, .65), 0 0 34px rgba(55, 234, 255, .09);
    transform: translateY(14px) scale(.985);
    transition: transform .22s ease;
}

.nexora-modal-overlay.active .nexora-modal-panel { transform: translateY(0) scale(1); }

.nexora-modal-header {
    min-height: 68px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 22px;
    border-bottom: 1px solid rgba(55, 234, 255, .16);
    background: rgba(7, 25, 39, .92);
}

.nexora-modal-title-area { display: flex; align-items: center; gap: 12px; }
.nexora-modal-title-area h3 {
    margin: 0;
    color: #e7fbff;
    font: 700 17px 'Orbitron', sans-serif;
    letter-spacing: .04em;
}
.nexora-modal-indicator {
    width: 9px; height: 9px; border-radius: 50%;
    background: #37eaff; box-shadow: 0 0 12px #37eaff;
}
.nexora-modal-close {
    width: 38px; height: 38px; border: 1px solid rgba(133, 197, 219, .2);
    border-radius: 10px; color: #a9d4e4; background: rgba(255,255,255,.04);
    font-size: 26px; line-height: 1; cursor: pointer;
}
.nexora-modal-close:hover { color: #fff; border-color: #37eaff; }
.nexora-modal-content { padding: 22px; overflow: auto; }
.nexora-modal-loading, .nexora-modal-error { padding: 28px; text-align: center; color: #9dc5d8; }
.nexora-modal-error { color: #ff9eaa; border: 1px solid rgba(255,100,120,.25); border-radius: 10px; }

.nexora-provider-toolbar { display:flex; align-items:center; justify-content:space-between; gap:18px; margin-bottom:20px; }
.nexora-eyebrow { color:#37eaff; font:600 11px 'Orbitron',sans-serif; letter-spacing:.13em; }
.nexora-provider-toolbar p { margin:7px 0 0; color:#8eafc1; font-size:13px; }
.nexora-action-button, .nexora-secondary-button {
    display:inline-flex; align-items:center; justify-content:center; gap:8px;
    min-height:40px; padding:9px 15px; border:1px solid rgba(55,234,255,.55);
    border-radius:9px; color:#03121c; background:linear-gradient(135deg,#61efff,#16a9d0);
    font-weight:700; text-decoration:none; cursor:pointer;
}
.nexora-action-button:hover { color:#03121c; filter:brightness(1.08); }
.nexora-secondary-button { color:#b8d4df; background:rgba(255,255,255,.04); border-color:rgba(150,190,210,.25); }
.nexora-provider-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.nexora-provider-card {
    min-width:0; padding:17px; border:1px solid rgba(86,171,203,.2);
    border-radius:13px; background:linear-gradient(145deg,rgba(18,48,68,.78),rgba(8,25,40,.9));
}
.nexora-provider-card-top { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
.nexora-provider-name { color:#e2f8ff; font-size:16px; font-weight:700; }
.nexora-provider-type { margin-top:4px; color:#6e9caf; font:600 9px 'Orbitron',sans-serif; letter-spacing:.1em; }
.nexora-status { padding:5px 8px; border-radius:20px; font-size:10px; font-weight:700; letter-spacing:.06em; }
.nexora-status.is-online { color:#7fffd1; background:rgba(30,210,145,.1); border:1px solid rgba(30,210,145,.25); }
.nexora-status.is-offline { color:#ff9eaa; background:rgba(255,90,110,.1); border:1px solid rgba(255,90,110,.25); }
.nexora-provider-model { display:flex; flex-direction:column; gap:5px; margin:20px 0 13px; }
.nexora-provider-model span { color:#6e9caf; font:600 9px 'Orbitron',sans-serif; }
.nexora-provider-model strong { overflow-wrap:anywhere; color:#c9efff; font-size:14px; }
.nexora-provider-meta { display:flex; justify-content:space-between; color:#8eafc1; font-size:12px; }
.nexora-provider-meta strong { color:#d8f4ff; }
.nexora-default-label { color:#37eaff; font-size:9px; font-weight:700; }
.nexora-provider-tags { display:flex; flex-wrap:wrap; gap:6px; min-height:27px; margin-top:12px; }
.nexora-provider-tags span { padding:4px 7px; border-radius:5px; color:#9ec8d8; background:rgba(55,234,255,.07); font-size:10px; }
.nexora-provider-toggle { margin-top:14px; }
.nexora-provider-toggle button { width:100%; padding:8px; border:1px solid rgba(255,255,255,.13); border-radius:7px; color:#c9e7f2; background:rgba(255,255,255,.04); cursor:pointer; font-size:12px; }
.nexora-provider-toggle button.is-danger { color:#ff9eaa; border-color:rgba(255,100,120,.25); }
.nexora-provider-toggle button.is-success { color:#7fffd1; border-color:rgba(30,210,145,.25); }
.nexora-empty-state { padding:48px 15px; text-align:center; border:1px dashed rgba(55,234,255,.22); border-radius:13px; }
.nexora-empty-icon { color:#37eaff; font-size:32px; }
.nexora-empty-state strong { display:block; margin:10px 0 5px; color:#d9f5ff; }
.nexora-empty-state p { margin:0; color:#8eafc1; font-size:13px; }

.nexora-form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.nexora-form-field { display:flex; flex-direction:column; gap:7px; min-width:0; }
.nexora-form-field label { color:#a9d4e4; font-size:12px; font-weight:600; }
.nexora-form-field input, .nexora-form-field select {
    width:100%; min-height:42px; padding:9px 11px; outline:none;
    color:#dff7ff; background:#081a29; border:1px solid rgba(106,177,205,.25); border-radius:8px;
}
.nexora-form-field select option { color:#dff7ff; background:#081a29; }
.nexora-form-field input:focus, .nexora-form-field select:focus { border-color:#37eaff; box-shadow:0 0 0 3px rgba(55,234,255,.08); }
.nexora-form-field span, .nexora-validation-summary { color:#ff9eaa; font-size:11px; }
.nexora-form-field small { color:#7299aa; font-size:10px; }
.nexora-form-wide { grid-column:1/-1; }
.nexora-form-options { display:flex; flex-wrap:wrap; gap:18px; margin-top:20px; padding:14px 0; border-top:1px solid rgba(55,234,255,.12); }
.nexora-form-options label { display:flex; align-items:center; gap:7px; color:#a9d4e4; font-size:12px; }
.nexora-form-options input { accent-color:#37eaff; }
.nexora-modal-actions { display:flex; justify-content:flex-end; gap:10px; margin-top:18px; padding-top:17px; border-top:1px solid rgba(55,234,255,.12); }

@media (max-width:700px) {
    .nexora-modal-overlay { padding:10px; align-items:flex-end; }
    .nexora-modal-panel { max-height:94vh; border-radius:15px 15px 8px 8px; }
    .nexora-modal-content { padding:15px; }
    .nexora-provider-grid, .nexora-form-grid { grid-template-columns:1fr; }
    .nexora-provider-toolbar { align-items:flex-start; flex-direction:column; }
    .nexora-form-wide { grid-column:auto; }
}


/* NEXORA canlı sohbet */
.nexora-chat-panel{margin:18px 0 12px;padding:16px;border:1px solid rgba(55,234,255,.22);border-radius:16px;background:rgba(5,19,35,.76);box-shadow:0 0 28px rgba(0,190,255,.06)}
.nexora-chat-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
.nexora-chat-new{border:1px solid rgba(55,234,255,.35);background:rgba(55,234,255,.08);color:#9cefff;border-radius:9px;padding:8px 12px;cursor:pointer}
.nexora-chat-messages{height:260px;overflow:auto;display:flex;flex-direction:column;gap:10px;padding:10px;background:rgba(1,9,19,.35);border-radius:12px}
.nexora-chat-welcome{margin:auto;color:#8fb4c8;text-align:center;font-size:14px}
.nexora-chat-message{max-width:88%;padding:11px 13px;border:1px solid rgba(74,190,226,.16);border-radius:12px;background:rgba(13,37,58,.86);color:#d7edf7;white-space:pre-wrap;overflow-wrap:anywhere}
.nexora-chat-message.user{align-self:flex-end;border-color:rgba(55,234,255,.3);background:rgba(13,75,100,.35)}
.nexora-chat-message.assistant{align-self:flex-start}
.nexora-chat-message.error{border-color:rgba(255,105,105,.5);color:#ffc1c1}
.nexora-chat-message>strong{display:block;color:#51e7ff;font-size:10px;letter-spacing:1px;margin-bottom:5px}
.nexora-chat-message-content{font-size:14px;line-height:1.55}
.nexora-chat-message small{display:block;color:#80a7bc;font-size:10px;margin-top:7px}
.nexora-chat-status{min-height:18px;color:#62dff4;font-size:11px;padding:4px 2px}
.nexora-chat-panel .command-area{margin:0}
.nexora-chat-panel .command-box{display:flex;gap:8px}
.nexora-chat-panel .command-box input{flex:1;min-width:0}
.nexora-chat-panel .command-box button{cursor:pointer}
.nexora-chat-panel button:disabled{opacity:.55;cursor:wait}
.nexora-conversation-list{display:flex;flex-direction:column;gap:6px}
.nexora-conversation-item{display:block;width:100%;text-align:left;padding:8px 10px;border:1px solid rgba(55,234,255,.12);border-radius:8px;background:rgba(5,23,40,.55);color:#a9c8d8;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nexora-conversation-item:hover{border-color:rgba(55,234,255,.5);color:#e4fbff}
@media(max-width:700px){.nexora-chat-panel{padding:11px}.nexora-chat-messages{height:220px}.nexora-chat-message{max-width:96%}.nexora-chat-heading{align-items:flex-start;flex-direction:column}}

.nexora-provider-actions{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px}
.nexora-provider-actions form{margin:0}
.nexora-provider-actions button{border:1px solid rgba(55,234,255,.22);background:rgba(55,234,255,.07);color:#b8eaf5;border-radius:7px;padding:7px 9px;font-size:11px;cursor:pointer}
.nexora-provider-actions button.is-danger{border-color:rgba(255,105,105,.3);color:#ffb3b3}
.nexora-provider-actions button.is-success{border-color:rgba(70,220,160,.3);color:#9ff0cb}

/* NEXORA voice conversation controls */
.nexora-chat-panel .command-box .nexora-voice-button{flex:0 0 42px;width:42px;min-width:42px;border:1px solid rgba(55,234,255,.28);border-radius:10px;background:rgba(55,234,255,.07);color:#9cefff;font-size:17px;cursor:pointer;transition:.2s}
.nexora-chat-panel .command-box .nexora-voice-button.is-active{border-color:rgba(55,234,255,.55);background:rgba(55,234,255,.14)}
.nexora-chat-panel .command-box .nexora-voice-button.is-listening{color:#fff;background:rgba(225,55,75,.75);border-color:#ff6478;animation:nexoraMicPulse 1s infinite}
@keyframes nexoraMicPulse{50%{box-shadow:0 0 0 6px rgba(255,80,100,.16)}}

/* NEXORA Piper voice tuning panel */
.nexora-voice-settings{margin-top:12px;padding:16px;border:1px solid rgba(55,234,255,.22);border-radius:12px;background:rgba(3,18,32,.82);display:grid;gap:12px}
.nexora-voice-settings[hidden]{display:none}
.nexora-voice-settings-head,.nexora-voice-settings-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.nexora-voice-settings-head strong{color:#9cefff;font:600 12px Rajdhani,sans-serif;letter-spacing:1.5px}
.nexora-voice-settings-head span,.nexora-voice-settings small{color:#87a9ba;font-size:11px}
.nexora-voice-settings-head span.online{color:#64e6b1}
.nexora-voice-settings label{display:grid;grid-template-columns:1fr auto;gap:5px;color:#c7e5ef;font-size:12px}
.nexora-voice-settings output{color:#69e8ff;font-variant-numeric:tabular-nums}
.nexora-voice-settings input[type=range]{grid-column:1/-1;width:100%;accent-color:#37eaff}
.nexora-voice-settings select,.nexora-voice-settings-actions button{border:1px solid rgba(55,234,255,.28);border-radius:8px;background:#071b2c;color:#c9f5ff;padding:8px 10px;font-size:11px}
.nexora-voice-settings-actions button{cursor:pointer}

.nexora-web-result-link{display:inline-block;margin:4px 8px 4px 0;color:#72eaff;text-decoration:underline;font-size:12px;overflow-wrap:anywhere}

.nexora-web-command-hints{padding:7px 2px 0;color:#80a7bc;font-size:10px;line-height:1.5}


/* NEXORA CORE - voice interaction states */
.core-stage .core-rings { transition: filter .25s ease, box-shadow .25s ease; }
.core-stage .core-glow { transition: background .25s ease, box-shadow .25s ease; }
.core-caption { display:flex; flex-direction:column; align-items:center; gap:4px; z-index:2; }
.core-caption small { font:600 10px 'Orbitron',sans-serif; letter-spacing:2px; color:#8ba9bb; }
.core-stage[data-state="listening"] .core-rings { border-color:rgba(255,83,111,.8); box-shadow:0 0 35px rgba(255,65,100,.25), inset 0 0 35px rgba(255,65,100,.08); filter:drop-shadow(0 0 12px rgba(255,65,100,.4)); animation:nexoraCoreListen 1.15s ease-in-out infinite; }
.core-stage[data-state="listening"] .core-rings::before,.core-stage[data-state="listening"] .core-rings::after { border-color:rgba(255,99,126,.8); animation-duration:7s; }
.core-stage[data-state="listening"] .core-glow { background:radial-gradient(circle,#fff 0 7%,#ff9aaa 25%,#ff3d67 52%,transparent 75%); box-shadow:0 0 40px #ff5276,0 0 100px rgba(255,55,95,.6); animation:nexoraVoiceWave .75s ease-in-out infinite alternate; }
.core-stage[data-state="listening"] .core-caption small { color:#ff8da2; }
.core-stage[data-state="speaking"] .core-rings { border-color:rgba(55,234,255,.9); box-shadow:0 0 45px rgba(55,234,255,.3), inset 0 0 35px rgba(55,234,255,.1); animation:nexoraCoreSpeak 1.4s ease-in-out infinite; }
.core-stage[data-state="speaking"] .core-rings::before,.core-stage[data-state="speaking"] .core-rings::after { border-style:solid; border-color:rgba(55,234,255,.85); animation-duration:4s; }
.core-stage[data-state="speaking"] .core-glow { box-shadow:0 0 50px var(--j-cyan),0 0 120px rgba(55,234,255,.7); animation:nexoraVoiceWave .42s ease-in-out infinite alternate; }
.core-stage[data-state="speaking"] .core-caption small { color:#55efff; }
.core-stage[data-state="processing"] .core-rings { border-color:rgba(168,121,255,.85); box-shadow:0 0 40px rgba(168,121,255,.28); animation:nexoraCoreSpeak .8s linear infinite; }
.core-stage[data-state="processing"] .core-glow { background:radial-gradient(circle,#fff 0 7%,#c5a8ff 25%,#8555e8 52%,transparent 75%); box-shadow:0 0 45px #a879ff; }
@keyframes nexoraCoreListen { 50% { transform:scale(1.035); } }
@keyframes nexoraCoreSpeak { 50% { transform:scale(1.025) rotate(4deg); } }
@keyframes nexoraVoiceWave { from { transform:scale(.82); filter:brightness(.9); } to { transform:scale(1.16); filter:brightness(1.35); } }
.nexora-news-result { margin:8px 0; padding:10px 12px; border:1px solid rgba(55,234,255,.16); border-radius:10px; background:rgba(5,25,42,.68); }
.nexora-news-result strong { display:block; color:#c9f5ff; font-size:13px; line-height:1.4; }
.nexora-news-result small { display:block; color:#81aabd; margin:5px 0; font-size:10px; }
.nexora-news-result p { margin:5px 0 8px; color:#b7cfdb; font-size:12px; line-height:1.5; }
@media(prefers-reduced-motion:reduce) { .core-stage[data-state] .core-rings,.core-stage[data-state] .core-glow { animation:none !important; } }


/* NEXORA embedded YouTube player */
.nexora-video-overlay{position:fixed;inset:0;z-index:10050;display:none;align-items:center;justify-content:center;padding:22px;background:rgba(1,8,16,.88);backdrop-filter:blur(10px)}
.nexora-video-overlay.is-open{display:flex}
.nexora-video-dialog{width:min(100%,980px);border:1px solid rgba(55,234,255,.35);border-radius:18px;overflow:hidden;background:#061625;box-shadow:0 25px 90px rgba(0,0,0,.6),0 0 35px rgba(55,234,255,.12)}
.nexora-video-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 18px;color:#c9f5ff;border-bottom:1px solid rgba(55,234,255,.16)}
.nexora-video-header strong{font:600 14px Rajdhani,sans-serif;letter-spacing:.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nexora-video-header button{width:36px;height:36px;border:1px solid rgba(55,234,255,.3);border-radius:9px;background:rgba(55,234,255,.08);color:#d9faff;font-size:26px;line-height:1;cursor:pointer}
.nexora-video-frame-wrap{position:relative;width:100%;aspect-ratio:16/9;background:#000}
.nexora-video-frame-wrap iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.nexora-video-note{margin:0;padding:10px 16px;color:#86aabd;font-size:11px;line-height:1.5}
body.nexora-video-open{overflow:hidden}
@media(max-width:640px){.nexora-video-overlay{padding:10px}.nexora-video-dialog{border-radius:12px}.nexora-video-header{padding:9px 12px}}


/* NEXORA 15: dashboard composer is compact; full history lives in its own dialog. */
.nexora-chat-panel{padding:12px 16px;margin:12px 0 10px}
.nexora-chat-panel .nexora-chat-heading{margin-bottom:8px}
.nexora-chat-panel .nexora-chat-heading .info-description{display:none}
.nexora-chat-panel .nexora-chat-messages{display:flex!important;height:360px;min-height:220px;max-height:52vh;margin:8px 0 10px}
.nexora-chat-panel .nexora-chat-status{min-height:18px;margin:0 0 5px;font-size:11px}
.nexora-chat-panel .nexora-web-command-hints{display:none}
.nexora-chat-panel .command-area{margin:0}
.nexora-chat-panel .command-box{min-height:48px}
.nexora-dashboard-recent-chats{display:none!important}
.nexora-history-modal{position:fixed;inset:0;z-index:12000;display:none;align-items:center;justify-content:center;padding:22px}
.nexora-history-modal.is-open{display:flex}
.nexora-history-backdrop{position:absolute;inset:0;background:rgba(0,5,12,.78);backdrop-filter:blur(7px)}
.nexora-history-dialog{position:relative;width:min(760px,96vw);max-height:min(78vh,760px);display:flex;flex-direction:column;border:1px solid rgba(55,234,255,.35);border-radius:18px;background:#061522;box-shadow:0 25px 90px rgba(0,0,0,.55),0 0 35px rgba(55,234,255,.10);overflow:hidden}
.nexora-history-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 20px;border-bottom:1px solid rgba(55,234,255,.16)}
.nexora-history-close{width:38px;height:38px;border:1px solid rgba(55,234,255,.3);border-radius:10px;background:rgba(55,234,255,.08);color:#bff7ff;font-size:26px;cursor:pointer}
.nexora-history-list{overflow:auto;padding:12px;display:grid;gap:8px}
.nexora-history-item{display:flex;flex-direction:column;align-items:flex-start;gap:5px;padding:13px 15px;border:1px solid rgba(55,234,255,.16);border-radius:10px;background:rgba(8,35,53,.7);color:#d9f8ff;text-align:left;cursor:pointer}
.nexora-history-item:hover{border-color:#37eaff;background:rgba(20,75,95,.45)}
.nexora-history-item small{color:#83a9b9;font-size:11px}
@media(max-width:700px){.nexora-chat-panel{padding:10px}.nexora-history-modal{padding:10px}.nexora-history-dialog{max-height:88vh}}

/* NEXORA 20: keep assistant replies visible on dashboard and mobile. */
@media(max-width:700px){.nexora-chat-panel .nexora-chat-messages{height:300px;max-height:48vh}}


/* NEXORA Internet speed test */
.nexora-speed-metrics {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    margin: 14px 0 18px;
}
.nexora-speed-metric {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 3px;
    padding: 13px 8px;
    border: 1px solid var(--j-border);
    border-radius: 7px;
    background: rgba(4, 22, 38, .78);
}
.nexora-speed-metric span {
    color: #9bb4c5;
    font-size: 9px;
    letter-spacing: 1px;
}
.nexora-speed-metric strong {
    color: #9de8f7;
    font-size: clamp(20px, 3vw, 30px);
    line-height: 1.2;
    font-family: 'Orbitron', sans-serif;
}
.nexora-speed-metric small {
    color: #8da9ba;
    font-size: 10px;
}
.nexora-speed-chart { display: grid; gap: 12px; margin: 12px 0; }
.nexora-speed-chart-row {
    display: grid;
    grid-template-columns: 76px minmax(60px, 1fr) 92px;
    align-items: center;
    gap: 10px;
    color: var(--j-text);
    font-size: 11px;
}
.nexora-speed-chart-row b {
    color: #9de8f7;
    text-align: right;
    font-variant-numeric: tabular-nums;
    font-size: 11px;
}
.nexora-speed-track {
    height: 10px;
    overflow: hidden;
    border-radius: 20px;
    background: rgba(130, 170, 190, .15);
}
.nexora-speed-bar {
    width: 0;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #1596c5, #63e6f2);
    transition: width .5s ease;
}
.nexora-speed-bar.upload { background: linear-gradient(90deg, #8467d8, #c49aff); }
.nexora-speed-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-top: 15px;
    flex-wrap: wrap;
}
.nexora-speed-footer span { color: #9bb4c5; font-size: 11px; }
.nexora-speed-button {
    border: 1px solid #27c4df;
    border-radius: 5px;
    padding: 9px 15px;
    color: #a9f2fb;
    background: rgba(17, 120, 151, .2);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 1px;
}
.nexora-speed-button:disabled { opacity: .55; cursor: wait; }
@media (max-width: 560px) {
    .nexora-speed-metrics { gap: 6px; }
    .nexora-speed-metric { padding: 10px 4px; }
    .nexora-speed-chart-row { grid-template-columns: 62px minmax(40px, 1fr) 76px; gap: 6px; }
}


/* NEXORA 28 - live internet connection monitor */
.nexora-monitor-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;flex-wrap:wrap}
.nexora-connection-badge{display:inline-flex;align-items:center;gap:7px;padding:7px 11px;border:1px solid rgba(130,170,190,.25);border-radius:30px;color:#9bb4c5;font-size:9px;font-weight:800;letter-spacing:1px;white-space:nowrap}
.nexora-connection-badge i{width:7px;height:7px;border-radius:50%;background:#a0aec0;box-shadow:0 0 8px currentColor}
.nexora-connection-badge.online{color:#31e6b0;border-color:rgba(49,230,176,.35);background:rgba(49,230,176,.07)}
.nexora-connection-badge.online i{background:#31e6b0}
.nexora-connection-badge.offline{color:#ff7185;border-color:rgba(255,113,133,.35);background:rgba(255,113,133,.07)}
.nexora-connection-badge.offline i{background:#ff7185}
.nexora-connection-badge.checking i{animation:nexoraPulse 1.2s infinite}
@keyframes nexoraPulse{50%{opacity:.25;box-shadow:0 0 1px currentColor}}
.nexora-live-chart-wrap{margin:10px 0 5px;padding:13px 14px 8px;border:1px solid var(--j-border);border-radius:8px;background:rgba(4,22,38,.55)}
.nexora-live-chart-head,.nexora-live-chart-axis{display:flex;justify-content:space-between;gap:10px;color:#91adbd;font-size:9px}
.nexora-live-chart-head strong{color:var(--j-text);font-size:10px;letter-spacing:.8px}
.nexora-live-chart{display:block;width:100%;height:150px;margin-top:8px;overflow:visible}
.nexora-chart-grid line{stroke:currentColor;stroke-opacity:.13;stroke-dasharray:4 5}
.nexora-chart-area{fill:url(#nexoraPingFill)}
.nexora-chart-line{fill:none;stroke:#31e6b0;stroke-width:2.7;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 4px rgba(49,230,176,.45));transition:all .25s ease}
.nexora-live-chart-axis{padding-top:2px;font-size:8px;opacity:.75}
.nexora-live-status-row{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-top:12px}
.nexora-live-status-row>span{color:#9bb4c5;font-size:10px}
.nexora-live-status-row #nexoraSpeedStatus{flex:1 1 220px}
@media(max-width:560px){.nexora-live-chart{height:115px}.nexora-live-chart-wrap{padding:10px 8px 7px}.nexora-live-chart-head{flex-direction:column;gap:4px}}
