/* KTS Private Market — Apple-inspired UI layer V38
   Visual-only refactor. No data, auth, permissions or business logic changes. */

:root{
  --ios-bg:#F5F5F7;
  --ios-surface:#FFFFFF;
  --ios-surface-2:#F2F2F7;
  --ios-text:#0B1E33;
  --ios-secondary:#6E6E73;
  --ios-tertiary:#8E8E93;
  --ios-line:rgba(60,60,67,.14);
  --ios-blue:#007AFF;
  --ios-green:#34C759;
  --ios-orange:#FF9F0A;
  --ios-purple:#AF52DE;
  --ios-cyan:#32ADE6;
  --ios-red:#FF3B30;
  --ios-radius:20px;
  --ios-radius-sm:14px;
  --ios-shadow:0 10px 32px rgba(0,0,0,.055);
  --ios-font:-apple-system,BlinkMacSystemFont,"SF Pro Display","SF Pro Text","Helvetica Neue",Arial,sans-serif;

  --ivory:var(--ios-bg);
  --ivory-light:#FAFAFC;
  --paper:var(--ios-surface);
  --navy:var(--ios-text);
  --navy-deep:#071525;
  --navy-soft:#324458;
  --greige:var(--ios-secondary);
  --line:var(--ios-line);
  --shadow:var(--ios-shadow);
  --sans:var(--ios-font);
}

html,body{
  background:var(--ios-bg);
  color:var(--ios-text);
  font-family:var(--ios-font);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

body{letter-spacing:-.005em}
button,input,select,textarea{font-family:var(--ios-font)}
button{-webkit-tap-highlight-color:transparent}

/* Shell */
.app-shell{grid-template-columns:240px minmax(0,1fr)}
.sidebar{
  background:rgba(255,255,255,.86);
  color:var(--ios-text);
  border-right:1px solid var(--ios-line);
  box-shadow:none;
  backdrop-filter:saturate(180%) blur(24px);
  -webkit-backdrop-filter:saturate(180%) blur(24px);
  padding:24px 16px 18px;
}
.brand{
  border-bottom:0;
  padding:4px 8px 22px;
  gap:11px;
}
.brand-mark{
  width:40px;height:40px;
  border:0;
  border-radius:12px;
  background:var(--ios-text);
  color:#fff;
  font-size:24px;
  box-shadow:0 6px 18px rgba(11,30,51,.16);
}
.brand-text strong{
  font-family:Georgia,"Times New Roman",serif;
  font-size:25px;
  font-weight:500;
  letter-spacing:.02em;
}
.brand-text span{
  color:var(--ios-secondary);
  letter-spacing:.16em;
  font-size:9px;
}
.nav-section{margin-top:16px}
.nav-title{
  color:var(--ios-tertiary);
  font-size:10px;
  font-weight:600;
  letter-spacing:.08em;
  padding:0 12px 7px;
}
.nav-item{
  min-height:44px;
  color:#3A4552;
  border:0;
  border-radius:12px;
  margin:2px 0;
  padding:10px 12px;
  font-size:13px;
  font-weight:560;
}
.nav-item:hover{background:rgba(0,122,255,.06);color:var(--ios-text)}
.nav-item.active{
  background:rgba(0,122,255,.10);
  color:var(--ios-blue);
  border:0;
}
.nav-ico{color:inherit;width:22px;font-size:17px}
.sidebar-foot{
  border-top:1px solid var(--ios-line);
  padding:14px 4px 0;
}
.profile-mini{padding:4px 6px}
.avatar{
  background:linear-gradient(145deg,#0B1E33,#214A73);
  color:#fff;
  box-shadow:none;
}
.profile-mini strong{color:var(--ios-text);font-weight:650}
.profile-mini span{color:var(--ios-secondary)}

/* Top bar */
.topbar{
  height:72px;
  padding:0 28px;
  background:rgba(245,245,247,.82);
  border-bottom:1px solid var(--ios-line);
  backdrop-filter:saturate(180%) blur(24px);
  -webkit-backdrop-filter:saturate(180%) blur(24px);
}
.search{max-width:620px}
.search input{
  height:42px;
  border:0;
  border-radius:13px;
  background:rgba(118,118,128,.12);
  color:var(--ios-text);
  padding:0 42px 0 14px;
  box-shadow:inset 0 0 0 1px rgba(60,60,67,.04);
}
.search input::placeholder{color:var(--ios-secondary)}
.search input:focus{
  border:0;
  outline:3px solid rgba(0,122,255,.15);
  background:#fff;
}
.search span{color:var(--ios-secondary);top:10px}
.content{
  max-width:1480px;
  padding:28px 30px 44px;
}

/* Typography */
.eyebrow{
  margin-bottom:6px;
  color:var(--ios-blue);
  font-size:11px;
  font-weight:650;
  letter-spacing:.04em;
  text-transform:none;
}
.page-head{align-items:center;margin-bottom:24px}
.page-head h1,
.section-head h2,
.panel-title,
.info-card h3,
.ux-dossier-panel h3,
.ux-focus-panel h2,
.ux-form-section h3{
  font-family:var(--ios-font);
  letter-spacing:-.025em;
}
.page-head h1{
  font-size:clamp(30px,3vw,42px);
  line-height:1.04;
  font-weight:760;
}
.page-head p{
  margin-top:7px;
  color:var(--ios-secondary);
  font-size:13px;
  line-height:1.45;
}
.date-note{color:var(--ios-secondary);font-size:12px}

/* Buttons */
.primary-btn,.ghost-btn,.gold-btn{
  min-height:42px;
  border-radius:12px;
  padding:10px 15px;
  font-size:12px;
  font-weight:650;
  letter-spacing:0;
  text-transform:none;
}
.primary-btn{
  border-color:var(--ios-blue);
  background:var(--ios-blue);
  color:#fff;
}
.primary-btn:hover{background:#0067d8;border-color:#0067d8;color:#fff}
.ghost-btn{
  background:var(--ios-surface);
  border-color:var(--ios-line);
  color:var(--ios-text);
}
.gold-btn{
  background:var(--ios-text);
  color:#fff;
  border-color:var(--ios-text);
}

/* Dashboard category tiles */
.kpi-grid{
  gap:12px;
  margin-bottom:18px;
}
.dashboard-kpis{
  grid-template-columns:repeat(4,minmax(0,1fr));
}
.kpi{
  min-height:138px;
  border:1px solid rgba(60,60,67,.09);
  border-radius:18px;
  background:var(--ios-surface);
  box-shadow:var(--ios-shadow);
  padding:18px;
  text-align:left;
  transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;
}
.kpi:hover{
  transform:translateY(-2px);
  border-color:rgba(0,122,255,.16);
  box-shadow:0 14px 36px rgba(0,0,0,.075);
}
.kpi:after{display:none}
.kpi-label{
  color:var(--ios-secondary);
  text-transform:none;
  letter-spacing:0;
  font-size:12px;
  font-weight:600;
}
.kpi-value{
  margin-top:10px;
  font-family:var(--ios-font);
  font-size:34px;
  font-weight:760;
  letter-spacing:-.035em;
}
.kpi-sub{
  margin-top:3px;
  color:var(--ios-secondary);
  font-size:11px;
  line-height:1.35;
}
.kpi-arrow{
  margin-top:12px;
  color:var(--ios-blue);
  font-size:11px;
  font-weight:650;
}
.dashboard-kpis .kpi:nth-child(1){box-shadow:inset 0 4px 0 rgba(0,122,255,.85),var(--ios-shadow)}
.dashboard-kpis .kpi:nth-child(2){box-shadow:inset 0 4px 0 rgba(52,199,89,.85),var(--ios-shadow)}
.dashboard-kpis .kpi:nth-child(3){box-shadow:inset 0 4px 0 rgba(175,82,222,.82),var(--ios-shadow)}
.dashboard-kpis .kpi:nth-child(4){box-shadow:inset 0 4px 0 rgba(255,159,10,.9),var(--ios-shadow)}
.dashboard-kpis .kpi:nth-child(n+5){
  min-height:112px;
  box-shadow:none;
  background:rgba(255,255,255,.68);
}
.dashboard-kpis .kpi:nth-child(n+5) .kpi-value{font-size:28px}

.dashboard-grid{gap:14px}
.dashboard-grid-3{gap:14px}
.panel,
.info-card,
.ux-dossier-panel,
.ux-filter-panel,
.ux-disclosure-context{
  background:var(--ios-surface);
  border:1px solid rgba(60,60,67,.09);
  border-radius:var(--ios-radius);
  box-shadow:var(--ios-shadow);
  overflow:hidden;
}
.panel-head{
  padding:17px 18px 14px;
  border-bottom:1px solid var(--ios-line);
}
.panel-title{
  font-size:18px;
  font-weight:720;
}
.panel-link{
  color:var(--ios-blue);
  font-size:12px;
  font-weight:620;
}
.task,.approval-row,.match-row,.event-row{
  border-color:var(--ios-line)!important;
  background:transparent!important;
}
.task:hover,.approval-row:hover,.match-row:hover,.event-row:hover{
  background:rgba(0,122,255,.035)!important;
}
.task-dot{border-radius:999px;background:var(--ios-blue)}
.task.urgent .task-dot{background:var(--ios-red)}
.task.soon .task-dot{background:var(--ios-orange)}
.match-score{font-family:var(--ios-font);font-weight:720;color:var(--ios-blue)}

/* Opportunity filters as iOS segmented controls */
.table-toolbar{
  gap:10px;
  margin-bottom:14px;
}
.collaborator-market-filters{
  width:auto;
  display:inline-flex;
  flex-wrap:wrap;
  gap:4px;
  padding:4px;
  border-radius:14px;
  background:rgba(118,118,128,.12);
}
.collaborator-market-filter,.filter-btn{
  min-height:36px;
  border:0;
  border-radius:10px;
  background:transparent;
  color:var(--ios-secondary);
  padding:8px 13px;
  font-size:12px;
  font-weight:620;
  letter-spacing:0;
  text-transform:none;
}
.collaborator-market-filter:hover,.filter-btn:hover{border:0;background:rgba(255,255,255,.6)}
.collaborator-market-filter.active,
.collaborator-market-filter[aria-pressed=true],
.filter-btn.active{
  background:#fff;
  color:var(--ios-text);
  border:0;
  box-shadow:0 2px 8px rgba(0,0,0,.08);
}

/* Opportunity cards — data first, no cover images */
.deal-market-grid{
  gap:12px!important;
  grid-template-columns:repeat(2,minmax(0,1fr));
}
.opportunity-data-card{
  min-height:0!important;
  padding:18px!important;
  border:1px solid rgba(60,60,67,.10)!important;
  border-radius:18px!important;
  background:var(--ios-surface)!important;
  box-shadow:var(--ios-shadow)!important;
  transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;
}
.opportunity-data-card:hover{
  transform:translateY(-2px);
  border-color:rgba(0,122,255,.20)!important;
  box-shadow:0 14px 38px rgba(0,0,0,.075)!important;
}
.market-card-head{align-items:flex-start}
.market-card-code{
  color:var(--ios-tertiary);
  font-size:10px;
}
.market-card-title{margin-top:14px}
.market-asset-class{
  margin-bottom:5px;
  color:var(--ios-blue);
  font-size:10px;
  letter-spacing:.03em;
  text-transform:none;
}
.opportunity-data-card .market-card-title h3{
  font-family:var(--ios-font)!important;
  font-size:22px!important;
  font-weight:740!important;
  line-height:1.12!important;
  letter-spacing:-.025em;
}
.opportunity-data-card .market-card-subtitle{
  color:var(--ios-secondary)!important;
  font-size:12px!important;
}
.market-card-data{
  margin-top:15px;
  border:0;
  gap:8px;
}
.market-data-cell{
  min-height:62px;
  border:0!important;
  border-radius:12px;
  background:var(--ios-surface-2);
  padding:10px 12px!important;
}
.market-data-cell span{
  color:var(--ios-secondary);
  font-size:10px;
  letter-spacing:0;
  text-transform:none;
}
.market-data-cell strong{
  font-size:13px!important;
  font-weight:650;
}
.market-data-cell.value strong{
  font-family:var(--ios-font);
  font-size:17px!important;
  letter-spacing:-.02em;
}
.market-card-footer{padding-top:14px!important}
.market-card-open{
  color:var(--ios-blue);
  font-size:11px;
  letter-spacing:0;
  text-transform:none;
}
.market-card-status{
  color:var(--ios-secondary);
  font-size:10px;
}

/* Badges */
.badge,.direction-badge,.quality-pill,.publish-pill,.market-card-access{
  border:0!important;
  border-radius:999px!important;
  padding:5px 9px!important;
  font-size:10px!important;
  letter-spacing:0!important;
  text-transform:none!important;
  font-weight:650!important;
}
.direction-badge.offer{background:rgba(0,122,255,.10);color:#0066D6}
.direction-badge.request{background:rgba(52,199,89,.12);color:#18833A}
.badge.re{background:rgba(50,173,230,.12);color:#167CA6}
.badge.ma{background:rgba(175,82,222,.11);color:#7D2FB0}
.quality-pill.complete{background:rgba(52,199,89,.12);color:#18833A}
.quality-pill.to_integrate{background:rgba(255,159,10,.13);color:#A85D00}
.quality-pill.to_verify,.publish-pill.pending_kts_review{background:rgba(255,59,48,.10);color:#C62822}
.publish-pill.blind_published{background:rgba(52,199,89,.12);color:#18833A}
.publish-pill.internal_only,.publish-pill.draft{background:rgba(118,118,128,.12);color:#5E5E63}
.market-card-access{background:rgba(11,30,51,.07)!important;color:var(--ios-text)!important}

/* Detail: keep information, remove image-led presentation */
.detail-back{
  margin-bottom:14px;
  color:var(--ios-blue);
  font-size:13px;
  font-weight:620;
}
.deal-hero{
  grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);
  gap:14px;
}
.hero-media{
  min-height:0;
  border:1px solid rgba(60,60,67,.09);
  border-radius:var(--ios-radius);
  background:var(--ios-surface);
  box-shadow:var(--ios-shadow);
  overflow:hidden;
}
.hero-media>img{display:none!important}
.hero-overlay{
  position:relative;
  inset:auto;
  background:none;
  color:var(--ios-text);
  padding:24px;
}
.hero-overlay .code{
  color:var(--ios-blue);
  font-size:11px;
  letter-spacing:.02em;
  text-transform:none;
}
.hero-overlay h1{
  margin:8px 0 7px;
  font-family:var(--ios-font);
  font-size:clamp(28px,3vw,40px);
  font-weight:760;
  line-height:1.05;
  letter-spacing:-.035em;
}
.hero-overlay p{
  color:var(--ios-secondary);
  font-size:13px;
}
.deal-summary{
  padding:22px;
  border:1px solid rgba(60,60,67,.09);
  border-radius:var(--ios-radius);
  background:var(--ios-surface);
  color:var(--ios-text);
  box-shadow:var(--ios-shadow);
}
.summary-value{
  color:var(--ios-text);
  font-family:var(--ios-font);
  font-size:34px;
  font-weight:760;
  letter-spacing:-.035em;
}
.summary-label{
  color:var(--ios-secondary);
  text-transform:none;
  letter-spacing:0;
  font-size:10px;
}
.summary-grid{
  border-top:1px solid var(--ios-line);
  gap:14px;
  margin-top:18px;
  padding-top:16px;
}
.summary-cell strong{font-size:12px;font-weight:650}
.next-card{
  margin-top:16px;
  border:0;
  border-radius:14px;
  background:var(--ios-surface-2);
  padding:14px;
}
.next-card strong{color:var(--ios-text)}
.next-card span{color:var(--ios-secondary)}
.detail-tabs{
  margin-top:16px;
  gap:4px;
  padding:4px;
  border:0;
  border-radius:14px;
  background:rgba(118,118,128,.12);
}
.tab-btn{
  border:0;
  border-radius:10px;
  min-height:36px;
  padding:8px 12px;
  color:var(--ios-secondary);
  font-size:12px;
  font-weight:620;
  letter-spacing:0;
  text-transform:none;
}
.tab-btn.active{
  border:0;
  background:#fff;
  color:var(--ios-text);
  box-shadow:0 2px 8px rgba(0,0,0,.08);
}
.info-card{padding:18px}
.info-card h3{font-size:18px;font-weight:720}
.info-item span{
  color:var(--ios-secondary);
  letter-spacing:0;
  text-transform:none;
  font-size:10px;
}
.info-item strong{font-size:13px;font-weight:650}

/* Inputs/forms */
.form-grid input,.form-grid textarea,.form-grid select,
.classifier-grid select,.auth-form input,.ux-filter-grid input,
.ux-filter-grid select,.ux-sort-label select{
  border:1px solid rgba(60,60,67,.11)!important;
  border-radius:12px!important;
  background:#fff!important;
  color:var(--ios-text)!important;
}
.form-grid input:focus,.form-grid textarea:focus,.form-grid select:focus,
.classifier-grid select:focus,.auth-form input:focus{
  outline:3px solid rgba(0,122,255,.13)!important;
  border-color:rgba(0,122,255,.35)!important;
}

/* Install controls kept functional but visually quieter */
.install-platform-section{
  border:0;
  background:var(--ios-surface-2);
  border-radius:14px;
}
.install-platform-title{color:var(--ios-secondary)}
.install-platform-card{
  background:#fff;
  color:var(--ios-text);
  border:1px solid var(--ios-line);
  box-shadow:none;
}
.install-platform-card small{color:var(--ios-secondary)}

/* Mobile / iPhone */
@media(max-width:1100px){
  .dashboard-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .deal-market-grid{grid-template-columns:1fr}
}

@media(max-width:800px){
  body{background:#F5F5F7}
  .app-shell{display:block}
  .sidebar{display:none}
  .main{width:100%}
  .topbar{
    min-height:58px;
    padding:10px 14px;
    background:rgba(245,245,247,.88);
    border-bottom:0;
    gap:8px;
  }
  .mobile-menu-btn{
    display:grid;
    place-items:center;
    width:40px;height:40px;
    border-radius:12px;
    background:#fff;
    box-shadow:0 2px 9px rgba(0,0,0,.06);
    font-size:19px;
  }
  .top-actions{gap:6px}
  .top-actions .role-switcher{display:none!important}
  .top-actions .primary-btn{
    width:40px;
    min-width:40px;
    max-width:40px;
    height:40px;
    padding:0;
    overflow:hidden;
    color:transparent;
    position:relative;
    border-radius:50%;
  }
  .top-actions .primary-btn:after{
    content:"+";
    position:absolute;
    inset:0;
    display:grid;
    place-items:center;
    color:#fff;
    font-size:24px;
    font-weight:400;
  }
  .search{
    order:3;
    flex-basis:100%;
    margin-top:2px;
  }
  .search input{
    height:38px;
    border-radius:12px;
    background:rgba(118,118,128,.12);
  }
  .content{
    padding:16px 14px calc(92px + env(safe-area-inset-bottom));
  }
  .page-head{
    align-items:flex-start;
    margin-bottom:16px;
  }
  .page-head h1{font-size:30px}
  .page-head p{font-size:12px}
  .date-note{display:none}
  .page-head>.primary-btn{display:none}
  .dashboard-kpis{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
  }
  .kpi{
    min-height:122px;
    padding:15px;
    border-radius:17px;
  }
  .kpi-value{font-size:30px}
  .dashboard-kpis .kpi:nth-child(n+5){min-height:100px}
  .dashboard-grid,.dashboard-grid-3{grid-template-columns:1fr!important}
  .panel{border-radius:18px}
  .panel-title{font-size:17px}

  .table-toolbar{
    overflow-x:auto;
    flex-wrap:nowrap;
    padding-bottom:2px;
    scrollbar-width:none;
  }
  .table-toolbar::-webkit-scrollbar{display:none}
  .collaborator-market-filters{
    display:inline-flex!important;
    grid-template-columns:none!important;
    width:max-content;
    max-width:none;
    flex-wrap:nowrap;
    flex:0 0 auto;
  }
  .collaborator-market-filter{width:auto!important;white-space:nowrap}

  .opportunity-data-card{
    padding:15px!important;
    border-radius:17px!important;
  }
  .market-card-head{padding-right:0!important}
  .market-card-title{margin-top:12px}
  .opportunity-data-card .market-card-title h3{font-size:20px!important}
  .market-card-data{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:7px;
  }
  .market-data-cell{min-height:58px;padding:9px 10px!important}
  .market-card-footer{display:flex!important;align-items:center!important}
  .opportunity-data-card>.ux-favorite{
    position:absolute!important;
    top:12px!important;
    right:12px!important;
    width:38px!important;
    min-height:38px!important;
    margin:0!important;
    padding:0!important;
    border-radius:50%!important;
    background:#fff!important;
  }

  .deal-hero{grid-template-columns:1fr}
  .hero-overlay{padding:20px 18px}
  .hero-overlay h1{font-size:30px}
  .deal-summary{padding:18px}
  .summary-value{font-size:30px}
  .detail-tabs{
    overflow-x:auto;
    justify-content:flex-start;
    scrollbar-width:none;
  }
  .detail-tabs::-webkit-scrollbar{display:none}
  .tab-btn{flex:0 0 auto;white-space:nowrap}
  .detail-grid{grid-template-columns:1fr}
  .info-list{grid-template-columns:1fr 1fr}

  .ux-mobile-nav{
    left:10px!important;
    right:10px!important;
    bottom:calc(8px + env(safe-area-inset-bottom))!important;
    inset-inline:10px!important;
    border:1px solid rgba(60,60,67,.12)!important;
    border-radius:20px!important;
    padding:5px 6px!important;
    background:rgba(255,255,255,.90)!important;
    box-shadow:0 10px 30px rgba(0,0,0,.12)!important;
    backdrop-filter:saturate(180%) blur(24px);
    -webkit-backdrop-filter:saturate(180%) blur(24px);
  }
  .ux-mobile-nav button{
    min-height:54px!important;
    border-radius:14px!important;
    color:var(--ios-secondary)!important;
    font-size:10px!important;
    font-weight:600!important;
  }
  .ux-mobile-nav button span{font-size:19px!important}
  .ux-mobile-nav button[aria-current=page]{
    color:var(--ios-blue)!important;
    background:rgba(0,122,255,.08)!important;
  }
  .toast{bottom:calc(92px + env(safe-area-inset-bottom))}
}

@media(max-width:520px){
  .content{padding-left:12px;padding-right:12px}
  .dashboard-kpis{grid-template-columns:1fr 1fr}
  .kpi{min-height:116px}
  .kpi-label{font-size:11px}
  .kpi-sub{font-size:10px}
  .market-card-data{grid-template-columns:1fr 1fr!important}
  .market-data-cell strong{font-size:12px!important}
  .market-data-cell.value strong{font-size:16px!important}
  .info-list{grid-template-columns:1fr}
}

@media(max-width:380px){
  .dashboard-kpis{grid-template-columns:1fr}
  .market-card-data{grid-template-columns:1fr!important}
}
