/* ING-CONNECT - Core Stylesheet */

html {
    font-size: 100%;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

body {
    font-size: 1rem;
    line-height: 1.6;
    letter-spacing: 0.01em;
}

/* Custom Scrollbar for a sleek look */

::-webkit-scrollbar {
    width: 6px;
    height: 6px;
}
::-webkit-scrollbar-track {
    background: transparent;
}
::-webkit-scrollbar-thumb {
    background: rgba(0, 240, 255, 0.2);
    border-radius: 10px;
}
::-webkit-scrollbar-thumb:hover {
    background: rgba(0, 240, 255, 0.5);
}

/* Glassmorphism Utilities */
.glass-panel {
    background: rgba(17, 24, 39, 0.6);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    border: 1px solid rgba(255, 255, 255, 0.05);
    box-shadow: 0 4px 30px rgba(0, 0, 0, 0.1);
}

.glass-panel-glow {
    background: rgba(17, 24, 39, 0.7);
    backdrop-filter: blur(20px);
    border: 1px solid rgba(0, 240, 255, 0.15);
    box-shadow: 0 0 20px rgba(0, 240, 255, 0.05), inset 0 0 20px rgba(0, 240, 255, 0.02);
}

/* Secure Blur (NDA Gate) */
.nda-locked {
    filter: blur(12px) grayscale(50%);
    pointer-events: none;
    user-select: none;
    transition: all 1s cubic-bezier(0.16, 1, 0.3, 1);
}

.nda-unlocked {
    filter: blur(0px) grayscale(0%);
    pointer-events: auto;
    user-select: auto;
}

/* Floating Animation */
@keyframes float {
    0% { transform: translateY(0px); }
    50% { transform: translateY(-10px); }
    100% { transform: translateY(0px); }
}

.animate-float {
    animation: float 6s ease-in-out infinite;
}

/* AI Typing Cursor */
.typing-cursor::after {
    content: '▋';
    animation: blink 1s step-start infinite;
    color: #00F0FF;
    margin-left: 4px;
}

@keyframes blink {
    50% { opacity: 0; }
}

/* 3D Model Viewer adjustments */
model-viewer {
    width: 100%;
    height: 100%;
    --poster-color: transparent;
    background-color: transparent;
}

/* Active Nav State */
.sidebar-link.active {
    background: rgba(0, 240, 255, 0.12);
    color: #00F0FF;
    border-color: rgba(0, 240, 255, 0.3);
}

/* Modal Backdrop */
.modal-backdrop {
    background: rgba(7, 11, 20, 0.85);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    z-index: 9999;
}


/* Lisibilite : texte courant 16px, informations secondaires 14px. */
html { font-size: 100%; }
body .text-xs,
body [class~="text-[10px]"],
body [class~="text-[11px]"] { font-size: 0.75rem !important; line-height: 1.5 !important; }
body .text-sm { font-size: 0.875rem !important; line-height: 1.6 !important; }
body input, body select, body textarea { font-size: 1rem !important; }
body button { min-height: 44px; }
body button:focus-visible, body a:focus-visible { outline: 2px solid #00f0ff; outline-offset: 4px; }
body .domain-chip { white-space: normal; text-align: center; }
body .modal-backdrop { overflow-y: auto; padding-block: 24px; }
body .modal-backdrop > div { max-height: calc(100dvh - 48px); overflow-y: auto; }
body main { min-width: 0; }
body aside { overflow-y: auto; }
@media (max-width: 640px) {
    body .modal-backdrop { padding: 12px; }
    body .modal-backdrop > div { max-height: calc(100dvh - 24px); }
}
[hidden] { display: none !important; }

/* Compact heading hierarchy for application screens. */
body .text-4xl { font-size: 2rem; line-height: 1.25; }
body .text-3xl { font-size: 1.75rem; line-height: 1.3; }
@media (max-width: 640px) { body .text-4xl { font-size: 1.75rem; } body .text-3xl { font-size: 1.5rem; } }

/* Application density: explicit utility overrides also win over runtime Tailwind. */
body { font-size: 0.875rem; line-height: 1.5; }
body .text-base { font-size: 0.875rem !important; line-height: 1.5 !important; }
body .text-lg { font-size: 1rem !important; line-height: 1.4 !important; }
body .text-xl { font-size: 1.125rem !important; line-height: 1.4 !important; }
body .text-2xl { font-size: 1.25rem !important; line-height: 1.3 !important; }
body .text-3xl { font-size: 1.5rem !important; line-height: 1.3 !important; }
body .text-4xl { font-size: 1.75rem !important; line-height: 1.25 !important; }
@media(max-width:640px) {
 body .text-4xl { font-size: 1.5rem !important; }
 body .text-3xl { font-size: 1.25rem !important; }
}

html body input[class], html body select[class], html body textarea[class] { font-size: 1rem !important; }

/* Full-height workspace; language control belongs to the assistant column. */
body.platform-shell { padding-top:0 !important; height:100dvh; min-height:0; }
.platform-shell > main, .platform-shell > aside { min-height:0; }
#platform-language-host { flex-shrink:0; padding:10px 16px; border-bottom:1px solid #ffffff0d; }
#platform-language-host #ing-language-switch { position:static; width:100%; box-sizing:border-box; justify-content:space-between; box-shadow:none; margin:0; padding:6px 10px; }
#platform-language-host #ing-language-switch select { min-width:96px; }

/* Size cards against their actual workspace, not the entire three-column window. */
#platform-main { container-type:inline-size; container-name:workspace; }
#platform-main .grid > *, #platform-main header > * { min-width:0; }
#platform-main header { flex-wrap:wrap; }
#platform-main header > .flex { flex-wrap:wrap; }
#platform-main header button { white-space:normal; }
#platform-main button span.font-mono { white-space:nowrap; }
#mobile-language-host { display:none; }
#platform-assistant { width:340px; }
#platform-nav { width:240px; }
@container workspace (max-width:850px) {
 #view-dashboard > .grid { grid-template-columns:minmax(0,1fr); }
 #view-dashboard > .grid > * { grid-column:auto; }
 #view-dashboard > header { flex-direction:column; align-items:stretch; }
 #container-market-requests, #container-market-experts, #bounties-full-list, #showroom-list { grid-template-columns:minmax(0,1fr); }
}
@container workspace (max-width:480px) {
 #view-dashboard > .grid > .p-7 { padding:18px; }
 #view-dashboard > .grid > div > .flex.justify-between { flex-wrap:wrap; gap:12px; }
 #view-dashboard > .grid > div > .flex.justify-between > div { min-width:0; }
 #view-dashboard .flex.items-center.gap-2\.5 { flex-wrap:wrap; }
 #view-dashboard .absolute.bottom-6.left-7 { left:18px; right:18px; }
 #platform-main .grid > div > .flex { flex-wrap:wrap; gap:12px; }
}
@media(max-width:1100px) {
 body.platform-shell { display:block; height:auto; min-height:100dvh; width:100%; overflow:auto; }
 #mobile-language-host { display:flex; justify-content:flex-end; position:sticky; top:0; z-index:40; background:#0b0f19; padding:8px 12px; }
 #mobile-language-host #ing-language-switch { position:static; margin:0; box-shadow:none; padding:5px 8px; }
 #platform-language-host { display:none; }
 #platform-nav { width:100%; height:auto; padding:12px; display:flex; flex-direction:row; align-items:center; gap:8px; overflow:visible; }
 #platform-nav > div:first-child { flex:1; min-width:0; }
 #platform-nav .sidebar-item:first-child { display:none; }
 #platform-nav nav { display:flex; overflow-x:auto; gap:6px; padding:0; }
 #platform-nav nav > * { flex:0 0 auto; width:auto; margin:0; padding:10px 12px; white-space:nowrap; }
 #platform-nav nav span.font-semibold { display:block; font-size:12px; }
 #platform-nav nav .gap-4 { gap:8px; }
 #platform-nav > .sidebar-item { display:block; padding:0; }
 #platform-nav > .sidebar-item button { padding:7px; }
 #platform-nav > .sidebar-item button > div, #platform-nav > .sidebar-item button > i { display:none; }
 #platform-main { height:auto; overflow:visible; padding:20px; width:100%; }
 #platform-assistant { width:auto; height:560px; max-height:85dvh; margin:20px; border:1px solid #ffffff1a; border-radius:16px; overflow:hidden; }
 .platform-shell > .fixed.pointer-events-none { display:none; }
}
@media(max-width:480px) {
 #platform-main { padding:12px; }
 #platform-assistant { margin:12px; }
 #platform-main header > .flex > button { flex:1 1 150px; justify-content:center; }
 #platform-main .grid { gap:16px; }
}

@container workspace (max-width:480px) {
 #view-marketplace div:has(> #tab-mode-requests) { flex-direction:column; width:100%; }
 #tab-mode-requests, #tab-mode-experts { width:100%; min-width:0; flex-wrap:wrap; }
}

#view-dashboard > .grid { grid-template-columns:minmax(0,2fr) minmax(0,1fr); }
#view-dashboard > .grid > * { grid-column:auto; }
#skillsChart { max-width:100%; width:100% !important; }
#view-dashboard .flex-1:has(> #skillsChart) { min-width:0; height:280px; flex:none; }
@container workspace (max-width:850px) { #view-dashboard > .grid { grid-template-columns:minmax(0,1fr); } }

#platform-nav .sidebar-item:first-child { padding-inline:16px; gap:10px; }
#platform-nav .sidebar-item:first-child > div:first-child { flex-shrink:0; width:36px; height:36px; }
#platform-nav .sidebar-item h1 { white-space:nowrap; font-size:18px !important; letter-spacing:-.6px; }
/* Compact assistant with a reversible right-edge collapse. */
#platform-assistant { position:fixed;inset:16px 16px auto auto;z-index:1000;width:min(420px,calc(100vw - 32px));height:calc(100dvh - 32px);max-height:720px;margin:0;display:flex;flex-direction:column;transform:translateX(0);visibility:visible;border:1px solid #466371;border-radius:18px;box-shadow:0 12px 40px #0008;transition:transform .25s ease,visibility 0s; }
#platform-assistant #ai-log { padding:12px; gap:10px; min-height:0; font-size:13px; line-height:1.5; }
#platform-assistant #ai-log .text-sm, #platform-assistant #ai-log p:not(.chat-privacy), #platform-assistant #ai-log .font-mono { font-size:13px !important; line-height:1.5 !important; }
#platform-assistant #ai-log .p-4, #platform-assistant #ai-log .p-5 { padding:12px; }
#platform-assistant > .p-5, #platform-assistant > .p-4 { padding:12px; }
#platform-assistant > .p-5 { flex-wrap:wrap; gap:8px; }
#platform-assistant .text-xs { font-size:11px !important; }
#platform-assistant #platform-language-host { padding:8px; }
#platform-assistant #ing-language-switch { gap:6px; padding:5px 7px; font-size:12px; }
#platform-assistant #ing-language-switch select { min-width:88px; }
#platform-assistant #ai-collapse { position:absolute; left:0; top:50%; transform:translateY(-50%); z-index:30; margin:0; width:20px; min-width:20px; height:36px; min-height:36px; padding:2px; border:1px solid #466371; border-left:0; border-radius:0 8px 8px 0; background:#193342; color:#a9d7dc; }
#ai-reopen { position:fixed; right:0; top:45%; z-index:45; border:1px solid #58c8cc; border-right:0; border-radius:14px 0 0 14px; background:#153440; color:#8ff7eb; padding:12px 10px; box-shadow:0 4px 18px #0005; font-size:14px; }
#collapsed-language-host { display:none; }
body.ai-collapsed #platform-assistant {width:min(420px,calc(100vw - 32px));height:calc(100dvh - 32px);border:1px solid #466371;transform:translateX(calc(100% + 24px));visibility:hidden;pointer-events:none;transition:transform .25s ease,visibility 0s .25s;}
body.ai-collapsed #collapsed-language-host { display:none; }
#collapsed-language-host #ing-language-switch { position:static; margin:0; box-shadow:none; }
@media(max-width:1100px){
 #platform-assistant {inset:12px 8px auto auto;height:calc(100dvh - 100px);}
 body.ai-collapsed #platform-assistant {height:calc(100dvh - 100px);}
 body.ai-collapsed #collapsed-language-host { display:none; }

}
@media(prefers-reduced-motion:reduce){#platform-assistant{transition:none}}

/* Refined typography: preserve mobile form readability and touch targets. */

body.platform-shell { font-size:13px; }
body .text-sm, body .text-base { font-size:13px !important; line-height:1.5 !important; }
body .text-lg { font-size:14px !important; }
body .text-xl { font-size:16px !important; }
body .text-2xl { font-size:18px !important; }
body .text-3xl { font-size:22px !important; }
body .text-4xl { font-size:24px !important; }
#platform-nav .sidebar-item h1 { font-size:17px !important; }
@media(min-width:769px) {
 html body input[class], html body select[class], html body textarea[class] { font-size:14px !important; }
}
@media(max-width:640px) {
 body .text-3xl { font-size:20px !important; }
 body .text-4xl { font-size:22px !important; }
}
.dashboard {container-type:inline-size;max-width:1400px;margin:auto;}
.dashboard .dash-header {display:flex;flex-wrap:wrap;justify-content:space-between;gap:20px;align-items:center;margin-bottom:24px;}
.dashboard #dashboard-welcome{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.dashboard .dash-member-badges{display:inline-flex;align-items:center;flex-wrap:wrap;gap:6px}.dashboard .dash-member-badge{display:inline-flex;align-items:center;min-height:23px;padding:3px 8px;border:1px solid #396576;border-radius:999px;background:#183b48;color:#b9f8ef;font-size:.72rem;font-weight:750;line-height:1.1;white-space:nowrap}.dashboard .dash-member-badge.is-mentor{border-color:#ba9140;background:#533f1c;color:#ffe0a0}.dashboard .dash-member-badge.is-admin{border-color:#9a7ee7;background:#302955;color:#e1d7ff}.dashboard .dash-member-verified{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:#197c62;color:#e9fff9;font-size:.78rem;font-weight:900;line-height:1;cursor:help}
.dashboard h1 {font-size:26px;font-weight:700;margin:4px 0 8px;}
.dashboard h2 {font-size:17px;font-weight:650;margin:0 0 16px;}
.dashboard p {line-height:1.6;}
.dashboard .dash-muted {color:#a5bdc8;font-size:13px;}
.dashboard #dashboard-content>button {border:1px solid #42616e;border-radius:12px;padding:10px 14px;background:#183543;color:#def7f4;}
.dashboard .dash-metrics {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px;}
.dashboard .dash-grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-bottom:18px;}
.dashboard .dash-card {padding:22px;border:1px solid #304c5c;border-radius:18px;background:linear-gradient(135deg,#142b39,#11212e);min-width:0;margin-bottom:0;}
.dashboard #dashboard-content>section {margin-top:18px;}
.dashboard .dash-metric {display:flex;flex-direction:column;text-decoration:none;gap:5px;}
.dashboard .dash-metric strong {font-size:28px;color:#92e5d5;}
.dashboard .dash-metric span {font-size:13px;color:#c3d5dd;}
.dashboard .dash-row {display:flex;flex-direction:column;gap:5px;border-top:1px solid #304653;padding:13px 0;text-decoration:none;overflow-wrap:anywhere;}
.dashboard .dash-row strong {font-size:14px;color:#e8f1f4;font-weight:550;}
.dashboard .dash-row span,.dashboard .dash-skill span {font-size:12px;color:#a8c4ce;}
.dashboard .dash-skill {display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;padding:8px 0;border-bottom:1px solid #304653;}
.dashboard .dash-skill strong {font-size:14px;font-weight:500;}
.dashboard .dash-card>a:last-child {overflow-wrap:anywhere;}
.dashboard a:focus-visible,.dashboard button:focus-visible {outline:2px solid #92e5d5;outline-offset:4px;}
.dashboard .dash-row:hover strong {color:#92e5d5;}
.request-model-fields {padding:16px;border:1px solid #42616e;border-radius:12px;}
.request-model-fields summary {cursor:pointer;color:#92e5d5;font-weight:600;}
.request-model-fields p {font-size:12px;color:#abc3ce;margin:10px 0;line-height:1.5;}
.request-model-fields label {display:block;margin-top:12px;}
.request-model-fields input,.request-model-fields textarea {display:block;width:100%;box-sizing:border-box;padding:10px;background:#0d1e2c;color:#effaff;border:1px solid #42616e;border-radius:8px;}
@container (max-width:700px) {.dashboard .dash-metrics {grid-template-columns:repeat(2,minmax(0,1fr));}.dashboard .dash-grid {grid-template-columns:1fr;}}
@media(max-width:640px) {.dashboard .dash-metrics {grid-template-columns:repeat(2,minmax(0,1fr));}.dashboard .dash-grid {grid-template-columns:1fr;}.dashboard .dash-card {padding:16px;}.dashboard h1 {font-size:22px;}}

#mobile-nav-toggle,#mobile-nav-shade{display:none}
@media(max-width:1100px){
 #mobile-nav-toggle{display:grid;place-items:center;position:fixed;left:0;top:45%;z-index:1003;width:34px;height:60px;padding:0;border:1px solid #467781;border-left:0;border-radius:0 14px 14px 0;background:#17343f;color:#9ae7dc;font-size:23px;transition:left .22s ease}
 body.mobile-nav-open #mobile-nav-toggle{left:min(280px,calc(100vw - 54px))}
 #mobile-nav-shade:not([hidden]){display:block;position:fixed;inset:0;z-index:1001;background:#0008;border:0;border-radius:0;width:100%;height:100dvh;padding:0}
 #platform-nav{position:fixed;inset:0 auto 0 0;z-index:1002;width:min(280px,calc(100vw - 54px));height:100dvh;box-sizing:border-box;display:flex;flex-direction:column;align-items:stretch;padding:22px 14px;overflow-y:auto;transform:translateX(-100%);visibility:hidden;transition:transform .22s ease,visibility .22s;background:#0e1c29;box-shadow:8px 0 30px #0004}
 body.mobile-nav-open #platform-nav{transform:translateX(0);visibility:visible}
 #platform-nav nav{display:flex;flex-direction:column;overflow:visible;gap:6px}
 #platform-nav nav>*{width:100%;box-sizing:border-box;white-space:normal;text-align:left}
 #platform-nav nav>[hidden]{display:none!important}
 #platform-nav>.sidebar-item{margin-top:20px}#platform-nav>.sidebar-item button>div{display:block}
 #mobile-language-host{position:fixed;top:0;right:0;background:transparent;padding:8px;z-index:40}
}
@media(prefers-reduced-motion:reduce){#platform-nav,#mobile-nav-toggle{transition:none}}

#mobile-nav-toggle .mobile-nav-unread{position:absolute;top:-8px;right:-8px;display:flex;align-items:center;justify-content:center;min-width:20px;height:20px;box-sizing:border-box;padding:0 4px;border:2px solid #0e1c29;border-radius:999px;background:#be3347;color:#fff;font:700 11px/1 system-ui}#mobile-nav-toggle .mobile-nav-unread[hidden]{display:none}

.mobile-profile-icon{display:none}
@media(max-width:1100px){
 #platform-nav{position:fixed;inset:auto 0 0;display:flex;flex-direction:row;align-items:center;width:100%;height:calc(62px + env(safe-area-inset-bottom));padding:4px 8px calc(4px + env(safe-area-inset-bottom));transform:none;visibility:visible;border-top:1px solid #34505c;border-right:0;overflow:visible;background:#10212df5;box-shadow:0 -4px 18px #0004}
 #platform-nav>div:first-child{flex:1}#platform-nav nav{flex-direction:row;justify-content:space-around;align-items:center;gap:0}
 #platform-nav nav>*{display:flex;align-items:center;justify-content:center;width:auto;flex:1;padding:10px 5px;min-height:44px;border-radius:12px}
 #platform-nav nav span.font-semibold{display:none}#platform-nav nav i{font-size:24px}
 #platform-nav>.sidebar-item{margin:0;padding:0}#platform-nav>.sidebar-item button{padding:10px 8px;background:transparent;border:0}
 #platform-nav>.sidebar-item button>div,#platform-nav>.sidebar-item button>img,#platform-nav>.sidebar-item button>i:not(.mobile-profile-icon){display:none}
 #platform-nav>.sidebar-item button>.mobile-profile-icon{display:block;font-size:24px;color:#9ae7dc}
 #platform-main{padding-bottom:calc(90px + env(safe-area-inset-bottom))}
 #dashboard-messages-link .message-unread-badge{position:absolute;top:0;right:0;margin:0;background:#be3347;color:#fff}
 #view-marketplace [id^="tab-mode-"]{padding:8px;font-size:11px}
}

/* Ambient glows stay inside the viewport rather than widening the document. */
html:has(body.platform-shell){overflow-x:clip}
#platform-main{min-width:0}

.request-documents{display:grid;gap:10px;margin:16px 0}.request-documents label{display:flex!important;align-items:center;gap:10px;font-size:inherit!important}.request-documents input[type=checkbox]{width:18px!important;height:18px!important;flex:none;accent-color:#83e0d2}
