/* JININOVA shared visual system. Presentation only; state colours keep their meaning. */
:root{--j-ink:#172b45;--j-muted:#52657b;--j-line:#dce4ee;--j-paper:#f4f6fa;--j-panel:#fff;--j-navy:#12263f;--j-blue:#245dc4;--j-soft:#edf3fd;--j-radius:14px;--j-shadow:0 4px 18px #142b4510}
body[data-ui]{color:var(--j-ink);font-family:'Pretendard Variable',Pretendard,'Noto Sans KR',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
body[data-ui] :is(h1,h2,h3){letter-spacing:-.035em;text-wrap:balance}
body[data-ui] :is(button,input,select,textarea){font-family:inherit}
body[data-ui] :is(button,a,input,select,textarea,summary):focus-visible{outline:3px solid #245dc4!important;outline-offset:3px;box-shadow:0 0 0 5px #fff!important}
body[data-ui] :is(button,a){-webkit-tap-highlight-color:#245dc422}
body[data-ui] :is(input,select,textarea){accent-color:var(--j-blue)}
body[data-ui] :is(.stat b,.stat strong,.metric .num,.registry-stat strong,.market-metric strong,.fee-summary b){font-variant-numeric:tabular-nums;letter-spacing:-.025em}
body[data-ui] :is(.btn,.button,.primary,.secondary,.hub-button){transition:background-color .15s,border-color .15s,box-shadow .15s}
body[data-ui] :is(dialog,.modal){border-color:var(--j-line);border-radius:18px;box-shadow:0 24px 80px #12263f33}
body[data-ui] dialog::backdrop{background:#12263f88}
/* Public site: strong editorial headings, consistent light sections and quiet borders. */
body[data-ui=public]{--ref-ink:var(--j-ink);--ref-muted:var(--j-muted);--ref-line:var(--j-line);--ref-paper:var(--j-paper);--ref-radius:18px}
body[data-ui=public] :is(.hub-hero,.hub-contact,.contact-banner){background:linear-gradient(125deg,#12263f,#183a50)}
body[data-ui=public] :is(.hub-header,.site-header){background:#fffffffa;border-color:var(--j-line);box-shadow:0 1px 12px #12263f08}
body[data-ui=public] :is(.hub-suite,.services-section,.principles-section){background:var(--j-paper)}
body[data-ui=public] :is(.hub-core,.hub-product,.service-card,.principle-card,.inquiry-form){border-color:var(--j-line);border-radius:18px;box-shadow:var(--j-shadow)}
body[data-ui=public] .hub-core:first-child{background:#f5f8fc}
body[data-ui=public] :is(.hub-photo-caption,.hub-connection-board){border-radius:16px;box-shadow:0 16px 44px #12263f20}
body[data-ui=public] :is(.hub-section-head h2,.section-heading h2){font-weight:650}
body[data-ui=public] :is(.hub-product h3,.hub-core h3){font-weight:650}
body[data-ui=public] :is(.hub-product-description,.hub-core p){color:#465a70;line-height:1.8}
body[data-ui=public] :is(.hub-login,.workspace-entry){background:var(--j-navy);color:#fff;box-shadow:none}
body[data-ui=public] .hub-filter button[aria-pressed=true]{background:var(--j-navy);color:#fff;border-color:var(--j-navy)}
/* Private control centre. Existing layout and responsive disclosure rules stay authoritative. */
body[data-ui=workspace]{--bg:var(--j-paper);--surface:#fff;--surface2:#f8fafd;--line:var(--j-line);--line2:#c6d3e3;--text:var(--j-ink);--muted:var(--j-muted);--navy:var(--j-navy);--brand:var(--j-blue);--brandSoft:var(--j-soft);background:var(--j-paper)}
body[data-ui=workspace] .side{background:var(--j-navy)!important;border-right:1px solid #243d58}
body[data-ui=workspace] .side .nav :is(button,a){border-radius:9px;color:#cbd7e5}
body[data-ui=workspace] .side .nav :is(button.active,a.active){background:#264566!important;color:#fff!important;box-shadow:inset 3px 0 #b9f27d}
body[data-ui=workspace] .section>.top h1{font-weight:650!important;letter-spacing:-.035em}
body[data-ui=workspace] :is(.panel,.stat,.registry-card,.registry-stat,.ob-card,.ob-stat,.report-card,.agent-card){border-color:var(--j-line);border-radius:var(--j-radius);box-shadow:var(--j-shadow)}
body[data-ui=workspace] :is(.btn,.viewbtn){border-radius:9px!important;font-weight:550!important;box-shadow:none}
body[data-ui=workspace] .btn.primary{background:var(--j-blue)!important;border-color:var(--j-blue)!important;color:#fff!important}
body[data-ui=workspace] :is(.filters input,.filters select){border-color:#cbd6e5;background:#fff;border-radius:9px}
body[data-ui=workspace] :is(.table thead th,.compact-list-heading){background:#edf2f8!important;color:#40546c!important;font-weight:650!important}
body[data-ui=workspace] .table tbody tr:nth-child(even){background:#f8fafd}
body[data-ui=workspace] .mobile-disclosure{border-color:var(--j-line);border-radius:12px}
body[data-ui=workspace] .mobile-disclosure>summary{font-weight:550;color:#344e6d}
body[data-ui=workspace].jini-compact-list #cards .ops-list-card{border:1px solid var(--j-line)!important;border-radius:12px!important;background:#fff;box-shadow:0 2px 7px #12263f06}
body[data-ui=workspace] :is(.statusbar,.ad-statusbar){border-radius:10px}
/* Task and news modules use the same navigation and form vocabulary. */
body:is([data-ui=tasks],[data-ui=news]){background:var(--j-paper);color:var(--j-ink)}
body:is([data-ui=tasks],[data-ui=news]) .sidebar{background:var(--j-navy);color:#fff;border-color:#243d58}
body:is([data-ui=tasks],[data-ui=news]) .sidebar :is(.brand,.brand small,.back,.back-link,.side-caption,.space-label,.nav-link,.nav){color:#dbe5f1}
body:is([data-ui=tasks],[data-ui=news]) .sidebar :is(.nav-link.active,.nav.active){background:#264566;color:#fff;box-shadow:inset 3px 0 #b9f27d;border-radius:9px}
body:is([data-ui=tasks],[data-ui=news]) .topbar{background:#fff;border-color:var(--j-line)}
body:is([data-ui=tasks],[data-ui=news]) :is(.task-panel,.form-card,.editor-panel,.client-panel,.report-card,.stats,.metrics){background:#fff;border:1px solid var(--j-line);border-radius:var(--j-radius);box-shadow:var(--j-shadow)}
body:is([data-ui=tasks],[data-ui=news]) :is(.focus,.focus-card){background:var(--j-navy);color:#fff;border-radius:var(--j-radius)}
body:is([data-ui=tasks],[data-ui=news]) :is(.button.primary,button.primary,a.primary){background:var(--j-blue);color:#fff;border-color:var(--j-blue);border-radius:9px;box-shadow:none}
body:is([data-ui=tasks],[data-ui=news]) :is(input:not([type=checkbox]),select,textarea){border-color:#cbd6e5;border-radius:9px;background:#fcfdff;color:var(--j-ink)}
body:is([data-ui=tasks],[data-ui=news]) :is(.heading h1,.page-heading h1){font-weight:650;line-height:1.35}
body:is([data-ui=tasks],[data-ui=news]) :is(.helper,.heading p,.page-heading p,.last-check){color:var(--j-muted)}
/* Authentication: readable desktop type as well as touch-sized mobile fields. */
body[data-ui=auth]{background:radial-gradient(ellipse at 50% 0,#dce8f8,transparent 70%),var(--j-paper);color:var(--j-ink)}
body[data-ui=auth] .login-card{border-color:var(--j-line);border-radius:20px;box-shadow:0 18px 64px #12263f12;border-top:4px solid var(--j-navy)}
body[data-ui=auth] :is(p,label,.back,#message){font-size:14px;line-height:1.7}
body[data-ui=auth] h1{font-size:24px;font-weight:650}
body[data-ui=auth] .brand small{font-size:11px;letter-spacing:.08em;color:var(--j-muted)}
body[data-ui=auth] input{font-size:16px;border-color:#cbd6e5;background:#fcfdff}
body[data-ui=auth] button:not(.text-button){font-size:15px;background:var(--j-blue);color:#fff}
/* AI analysis: clarity over ornament, compatible with integrated and standalone views. */
body[data-ui=analysis]{--navy:var(--j-navy);--ink:var(--j-ink);--muted:var(--j-muted);--line:var(--j-line);background:var(--j-paper)}
body[data-ui=analysis] :is(.topbar,.integration-savebar){background:#fff;border-color:var(--j-line)}
body[data-ui=analysis] :is(.search-panel,.profile-panel,.signal-card,.market-metric,.candidate-card,.conversation-panel){border-color:var(--j-line);border-radius:var(--j-radius);box-shadow:var(--j-shadow)}
body[data-ui=analysis] :is(.primary-button,.search-button){background:var(--j-blue);color:#fff}
body[data-ui=analysis] .analysis-tabs button.active{background:var(--j-soft);color:var(--j-blue);border-color:#acc5eb}
/* Forecasting components consume these semantic tokens, including portalled dialogs. */
body[data-ui=forecast]{--background:var(--j-paper);--foreground:var(--j-ink);--primary:var(--j-blue);--primary-foreground:#fff;--muted-foreground:var(--j-muted);--border:var(--j-line);--ring:var(--j-blue);--radius:.875rem;background:var(--j-paper);font-variant-numeric:tabular-nums}
body[data-ui=forecast] [data-slot=card]{border-color:var(--j-line);box-shadow:var(--j-shadow)}
@media(hover:hover){body[data-ui=workspace] .table tbody tr:hover{background:#edf3fd}body[data-ui] :is(.hub-product,.hub-core):hover{border-color:#b3c5df;box-shadow:0 10px 28px #12263f12}}
@media(max-width:800px){
 body[data-ui=public] :is(.hub-core,.hub-product){border-radius:14px}
 body[data-ui=workspace] .mobile-nav-toggle{background:#1e3b59!important;border-color:#45617d!important;color:#fff!important}
 body[data-ui=workspace] .section table.mobile-records tbody tr{border:1px solid var(--j-line)!important;border-radius:14px!important;background:#fff;box-shadow:0 2px 8px #12263f08}
 body[data-ui=workspace] .section table.mobile-records td{border-color:#e4eaf2!important}
 body[data-ui=workspace] .section table.mobile-records td::before{color:#52657b!important;font-size:13px!important;font-weight:550!important}
 body[data-ui=workspace] .section table.mobile-records td:first-child{background:#f6f9fd}
 body[data-ui=auth] .login-card{padding:26px 22px}
}
@media(prefers-reduced-motion:reduce){body[data-ui] *,body[data-ui] *::before,body[data-ui] *::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
@media print{body[data-ui]{background:white}body[data-ui] :is(.panel,.stat,.hub-core,.hub-product){box-shadow:none}}

/* Shared customer-facing briefing. Urgent borders and yellow headlines retain priority. */
body[data-ui=news-report]{background:var(--j-paper)}
body[data-ui=news-report] .hero{background:var(--j-navy);box-shadow:0 12px 36px #12263f18}
body[data-ui=news-report] .news{box-shadow:var(--j-shadow)}
body[data-ui=news-report] .news:not(.urgent){border-color:var(--j-line)}
body[data-ui=news-report] .insights{background:#f1f5fb}
body[data-ui=news-report] .news small{color:var(--j-muted);font-size:12px}

body:is([data-ui=tasks],[data-ui=news]) .sidebar :is(.sidebar-note p,.side-note h2,.user b){color:#eef4fb}
body:is([data-ui=tasks],[data-ui=news]) .sidebar :is(.sidebar-note span,.side-note p,.user small){color:#b8c9dc}
body[data-ui=news] .focus h2{color:#fff}
body[data-ui=news] .focus :is(p,.eyebrow,.focus-bottom){color:#cbd9ea}

body:is([data-ui=tasks],[data-ui=news]) :is(.task-client,.task-progress,.assignee,.table-header,.section-heading p,.breadcrumb,.connection,.stats .stat>span,.stats .stat>small,.metrics span,.metrics small,.report-card p,.card-top small,.page-footer,footer){color:var(--j-muted)}
body:is([data-ui=tasks],[data-ui=news]) input::placeholder{color:#63748a;opacity:1}
