  :root{
    --canvas:#000000;
    --surface-card:#0a0a0c;
    --surface-elevated:#101012;
    --surface-deep:#06060a;
    --hairline: rgba(255,255,255,0.06);
    --hairline-strong: rgba(255,255,255,0.14);
    --divider-soft: rgba(255,255,255,0.04);
    --ink:#fcfdff;
    --body-c: rgba(252,253,255,0.86);
    --charcoal: rgba(252,253,255,0.7);
    --mute:#a1a4a5;
    --ash:#888e90;
    --stone:#464a4d;
    --primary:#fcfdff;
    --primary-on:#000000;
    --surface-light:#f1f7fe;
    --accent-orange:#ff801f;
    --accent-orange-glow: rgba(255,89,0,0.22);
    --accent-yellow:#ffc53d;
    --accent-blue:#3b9eff;
    --accent-blue-glow: rgba(0,117,255,0.34);
    --accent-green:#11ff99;
    --accent-green-glow: rgba(34,255,153,0.18);
    --accent-red:#ff2047;
    --accent-red-glow: rgba(255,32,71,0.34);
    --font-display:'Fraunces', Georgia, serif;
    --font-body:'Inter Tight', Inter, sans-serif;
    --font-ui:'Inter', sans-serif;
    --font-mono:'JetBrains Mono', monospace;
  }
  *{box-sizing:border-box;}
  html,body{background:var(--canvas); color:var(--ink); margin:0; font-family:var(--font-ui); -webkit-font-smoothing:antialiased;}
  ::selection{background:rgba(252,253,255,0.18);}
  ::-webkit-scrollbar{width:10px; height:10px;}
  ::-webkit-scrollbar-track{background:transparent;}
  ::-webkit-scrollbar-thumb{background:var(--hairline-strong); border-radius:8px;}

  .font-display{font-family:var(--font-display); font-feature-settings:"ss01","liga"; font-weight:400; line-height:1;}
  .font-body{font-family:var(--font-body);}
  .font-mono{font-family:var(--font-mono);}

  .display-xxl{font-family:var(--font-display); font-feature-settings:"ss01"; font-weight:400; line-height:1; letter-spacing:-0.96px; font-size:clamp(34px,7vw,72px);}
  .display-xl{font-family:var(--font-display); font-feature-settings:"ss01"; font-weight:400; line-height:1; letter-spacing:-0.7px; font-size:clamp(28px,4.5vw,44px);}
  .subtitle{font-family:var(--font-body); font-size:18px; line-height:1.5; color:var(--body-c);}

  .hairline-b{border-bottom:1px solid var(--hairline);}
  .hairline-t{border-top:1px solid var(--hairline);}

  .btn-primary{background:var(--primary); color:var(--primary-on); font-family:var(--font-ui); font-weight:500; font-size:14px; padding:8px 16px; border-radius:8px; height:36px; display:inline-flex; align-items:center; justify-content:center; gap:6px; border:none; cursor:pointer; transition:background .15s ease, transform .1s ease;}
  .btn-primary:hover{background:#e8eef7;}
  .btn-primary:active{background:var(--surface-light); transform:scale(.98);}
  .btn-primary:disabled{opacity:.4; cursor:not-allowed;}

  .btn-ghost{background:var(--surface-elevated); color:var(--ink); border:1px solid var(--hairline-strong); font-family:var(--font-ui); font-weight:500; font-size:14px; padding:8px 16px; border-radius:8px; height:36px; display:inline-flex; align-items:center; justify-content:center; gap:6px; cursor:pointer; transition:background .15s ease;}
  .btn-ghost:hover{background:#17171a;}
  .btn-ghost:disabled{opacity:.4; cursor:not-allowed;}

  .btn-outline{background:transparent; color:var(--ink); border:1px solid var(--hairline-strong); font-family:var(--font-ui); font-weight:500; font-size:14px; padding:8px 16px; border-radius:8px; height:36px; display:inline-flex; align-items:center; justify-content:center; gap:6px; cursor:pointer; transition:border-color .15s ease;}
  .btn-outline:hover{border-color:var(--ink);}

  .btn-icon{width:36px; height:36px; border-radius:8px; background:var(--surface-elevated); border:1px solid var(--hairline-strong); color:var(--ink); display:inline-flex; align-items:center; justify-content:center; cursor:pointer;}
  .btn-icon:hover{background:#17171a;}

  .card{background:var(--surface-card); border-radius:12px; padding:24px;}
  .card-b{background:var(--surface-card); border:1px solid var(--hairline-strong); border-radius:12px; padding:24px;}
  .card-elevated{background:var(--surface-elevated); border:1px solid var(--hairline-strong); border-radius:12px; padding:24px;}
  .code-window{background:var(--surface-deep); border:1px solid var(--hairline-strong); border-radius:12px; padding:20px; font-family:var(--font-mono); font-size:13px; color:var(--body-c);}

  .pill{background:var(--surface-elevated); color:var(--body-c); font-size:12px; font-family:var(--font-ui); padding:4px 10px; border-radius:9999px; display:inline-flex; align-items:center; gap:6px; white-space:nowrap;}
  .status-dot{width:8px; height:8px; border-radius:9999px; display:inline-block; flex-shrink:0;}

  .field-label{font-family:var(--font-ui); font-size:12px; font-weight:500; color:var(--mute); text-transform:uppercase; letter-spacing:0.5px; margin-bottom:6px; display:block;}
  .input{width:100%; background:var(--surface-card); color:var(--ink); border:1px solid var(--hairline-strong); border-radius:8px; padding:10px 14px; height:40px; font-family:var(--font-ui); font-size:14px; outline:none; transition:border-color .15s ease;}
  .input:focus{border-color:var(--ink);}
  textarea.input{height:auto; padding-top:10px;}
  select.input{appearance:none; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23a1a4a5'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 14px center; padding-right:32px;}

  .nav-link{font-family:var(--font-ui); font-size:14px; letter-spacing:0.35px; color:var(--charcoal); padding:8px 4px; cursor:pointer; border-bottom:2px solid transparent; transition:color .15s ease;}
  .nav-link:hover{color:var(--ink);}
  .nav-link.active{color:var(--ink); border-bottom-color:var(--ink);}

  .glow-blue{position:relative;}
  .glow-blue::before{content:''; position:absolute; top:0; left:50%; transform:translateX(-50%); width:1100px; max-width:160vw; height:480px; background:radial-gradient(ellipse at top, var(--accent-blue-glow), transparent 70%); pointer-events:none; z-index:0; opacity:.55;}
  .glow-green::before{content:''; position:absolute; top:0; left:50%; transform:translateX(-50%); width:1100px; max-width:160vw; height:480px; background:radial-gradient(ellipse at top, var(--accent-green-glow), transparent 70%); pointer-events:none; z-index:0; opacity:.6;}
  .glow-orange::before{content:''; position:absolute; top:0; left:50%; transform:translateX(-50%); width:1100px; max-width:160vw; height:480px; background:radial-gradient(ellipse at top, var(--accent-orange-glow), transparent 70%); pointer-events:none; z-index:0; opacity:.5;}
  .glow-wrap{position:relative; overflow:hidden;}
  .glow-wrap > *{position:relative; z-index:1;}

  .kanban-col{background:var(--surface-card); border:1px solid var(--hairline-strong); border-radius:12px; padding:16px; min-height:120px;}
  .kanban-card{background:var(--surface-elevated); border:1px solid var(--hairline); border-left:3px solid var(--hairline-strong); border-radius:8px; padding:12px; margin-bottom:10px; cursor:pointer; transition:border-color .15s ease, transform .1s ease;}
  .kanban-card:hover{border-color:var(--hairline-strong); transform:translateY(-1px);}

  table.data-table{width:100%; border-collapse:collapse; font-family:var(--font-ui); font-size:13px;}
  table.data-table th{text-align:left; font-weight:500; color:var(--mute); text-transform:uppercase; font-size:11px; letter-spacing:0.5px; padding:10px 12px; border-bottom:1px solid var(--hairline-strong); cursor:pointer; white-space:nowrap; user-select:none;}
  table.data-table th:hover{color:var(--ink);}
  table.data-table td{padding:12px; border-bottom:1px solid var(--divider-soft); color:var(--body-c); vertical-align:middle;}
  table.data-table tr:hover td{background:rgba(255,255,255,0.02);}

  .progress-track{height:8px; background:var(--hairline); border-radius:9999px; overflow:hidden; width:100%;}
  .progress-fill{height:100%; border-radius:9999px; transition:width .4s ease;}

  .modal-overlay{position:fixed; inset:0; background:rgba(0,0,0,0.7); backdrop-filter:blur(4px); z-index:100; display:flex; align-items:flex-start; justify-content:center; overflow-y:auto; padding:40px 16px;}
  .modal-panel{background:var(--surface-card); border:1px solid var(--hairline-strong); border-radius:12px; max-width:640px; width:100%; padding:32px; margin:auto;}

  .chip{background:var(--surface-elevated); border:1px solid var(--hairline-strong); color:var(--body-c); font-size:12px; padding:4px 8px 4px 10px; border-radius:9999px; display:inline-flex; align-items:center; gap:6px;}
  .chip button{background:none; border:none; color:var(--ash); cursor:pointer; font-size:14px; line-height:1; padding:0;}
  .chip button:hover{color:var(--accent-red);}

  .star{cursor:pointer; font-size:20px; color:var(--stone); transition:color .1s ease;}
  .star.filled{color:var(--accent-yellow);}

  .toast{background:var(--surface-elevated); border:1px solid var(--hairline-strong); border-radius:8px; padding:12px 16px; color:var(--ink); font-size:13px; font-family:var(--font-ui); box-shadow:none; min-width:260px; max-width:360px; display:flex; align-items:flex-start; gap:10px; animation:toast-in .2s ease;}
  @keyframes toast-in{from{opacity:0; transform:translateY(-8px);} to{opacity:1; transform:translateY(0);}}

  .chat-bubble-user{background:var(--surface-elevated); border:1px solid var(--hairline-strong); border-radius:12px 12px 2px 12px; padding:14px 16px; max-width:78%; margin-left:auto; font-size:14px; color:var(--ink); font-family:var(--font-body);}
  .chat-card{background:var(--surface-deep); border:1px solid var(--hairline-strong); border-radius:12px; padding:20px; max-width:92%; font-family:var(--font-ui);}

  .spinner{width:16px; height:16px; border-radius:50%; border:2px solid var(--hairline-strong); border-top-color:var(--ink); animation:spin .7s linear infinite;}
  @keyframes spin{to{transform:rotate(360deg);}}

  .typing-dot{width:6px; height:6px; border-radius:50%; background:var(--mute); animation:blink 1.2s infinite ease-in-out;}
  .typing-dot:nth-child(2){animation-delay:.2s;} .typing-dot:nth-child(3){animation-delay:.4s;}
  @keyframes blink{0%,80%,100%{opacity:.2;} 40%{opacity:1;}}

  .fab{position:fixed; bottom:24px; right:24px; z-index:40; width:52px; height:52px; border-radius:9999px; background:var(--primary); color:var(--primary-on); border:none; font-size:26px; display:flex; align-items:center; justify-content:center; cursor:pointer; transition:transform .15s ease;}
  .fab:hover{transform:scale(1.06);}

  @media (max-width: 1023px){
    .desktop-nav{display:none;}
  }
  @media (min-width: 1024px){
    .mobile-nav-toggle{display:none;}
  }

/* Best-of-three additions: editorial metrics, local advisor, responsive flow */
body{min-height:100vh;background:
  radial-gradient(900px 460px at 85% -10%,rgba(61,107,255,.13),transparent 62%),
  radial-gradient(760px 420px at 0 30%,rgba(163,255,112,.045),transparent 65%),var(--canvas);}
nav{backdrop-filter:blur(18px);background:rgba(0,0,0,.82)!important;}
#view-root{min-height:calc(100vh - 190px);}
.app-status{display:flex;align-items:center;gap:8px;color:var(--mute);font-size:11px;letter-spacing:.2px;}
.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0 0 26px;}
.metric-card{position:relative;min-height:145px;padding:18px;border:1px solid var(--hairline);border-radius:12px;background:linear-gradient(145deg,rgba(255,255,255,.035),rgba(255,255,255,.012));overflow:hidden;}
.metric-card::after{content:"";position:absolute;inset:auto -20% -65% 10%;height:120px;background:radial-gradient(ellipse,rgba(255,255,255,.07),transparent 68%);pointer-events:none;}
.metric-card strong{display:block;margin:24px 0 7px;font-family:var(--font-display);font-size:32px;font-weight:400;letter-spacing:-1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.metric-card span{display:block;color:var(--ash);font-size:11px;line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.metric-lime{border-color:rgba(17,255,153,.16);}.metric-lime strong{color:#c8ff9b;}
.metric-blue{border-color:rgba(59,158,255,.18);}.metric-blue strong{color:#9dcbff;}
.metric-violet{border-color:rgba(171,130,255,.18);}.metric-violet strong{color:#d0b7ff;font-size:26px;}
.focus-panel{display:flex;align-items:center;justify-content:space-between;gap:22px;margin-bottom:54px;padding:20px 22px;border:1px solid rgba(216,249,155,.16);border-radius:12px;background:linear-gradient(100deg,rgba(216,249,155,.07),rgba(59,158,255,.035));}
.focus-panel h2{font-family:var(--font-display);font-size:24px;font-weight:400;letter-spacing:-.5px;margin:2px 0 6px;}
.focus-panel p:last-child{color:var(--ash);font-size:12px;}
.section-kicker{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:18px;}
.section-kicker span{color:var(--mute);font-size:10px;text-transform:uppercase;letter-spacing:1.2px;}
.section-kicker h2{font-family:var(--font-display);font-weight:400;font-size:26px;}
.advisor-index{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px;}
.advisor-index span,.advisor-source{display:inline-flex;align-items:center;gap:7px;padding:5px 9px;border:1px solid var(--hairline);border-radius:999px;background:rgba(255,255,255,.025);color:var(--mute);font-size:10px;text-transform:uppercase;letter-spacing:.55px;}
.advisor-source{margin-bottom:14px;color:var(--body-c);}
.quick-prompts{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px;}
.quick-prompts button{padding:7px 10px;border:1px solid var(--hairline-strong);border-radius:999px;background:var(--surface-card);color:var(--charcoal);font-size:11px;cursor:pointer;transition:.15s ease;}
.quick-prompts button:hover{border-color:var(--accent-blue);color:var(--ink);transform:translateY(-1px);}
.bar-chart{height:280px;display:grid;grid-template-columns:32px 1fr;gap:12px;padding-top:16px;}
.chart-y{display:flex;flex-direction:column;justify-content:space-between;color:var(--stone);font-family:var(--font-mono);font-size:9px;text-align:right;padding-bottom:26px;}
.chart-bars{display:grid;grid-template-columns:repeat(8,minmax(22px,1fr));gap:8px;border-left:1px solid var(--hairline);border-bottom:1px solid var(--hairline);padding:0 6px 0 12px;background:repeating-linear-gradient(to bottom,transparent 0,transparent calc(50% - 1px),var(--divider-soft) 50%,transparent calc(50% + 1px));}
.chart-bar-group{min-width:0;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:8px;}
.chart-bar-area{height:225px;width:100%;display:flex;align-items:flex-end;justify-content:center;}
.chart-bar{position:relative;width:min(34px,70%);min-height:4px;border-radius:5px 5px 1px 1px;background:linear-gradient(to top,rgba(59,158,255,.45),rgba(59,158,255,.9));box-shadow:0 0 22px rgba(59,158,255,.13);animation:bar-grow .5s ease-out;}
.chart-bar b{position:absolute;top:-18px;left:50%;transform:translateX(-50%);font:9px var(--font-mono);color:var(--mute);}
.chart-bar-group small{height:18px;color:var(--ash);font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;}
@keyframes bar-grow{from{height:0;opacity:.2}to{opacity:1}}
.app-footer{border-top:1px solid var(--divider-soft);padding:26px 20px 34px;color:var(--stone);font-size:11px;}
.app-footer-inner{max-width:1200px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:16px;}
.app-footer strong{font-family:var(--font-display);font-size:15px;font-weight:400;color:var(--charcoal);}

@media(max-width:900px){
  .metric-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  #kanban-board{grid-template-columns:1fr!important;}
  #analytics-grid{grid-template-columns:1fr!important;}
}
@media(max-width:620px){
  #view-root{padding-left:14px!important;padding-right:14px!important;}
  .metric-grid{grid-template-columns:1fr 1fr;gap:7px;}
  .metric-card{min-height:120px;padding:14px;}.metric-card strong{font-size:25px;margin-top:18px;}.metric-violet strong{font-size:20px;}
  .focus-panel{align-items:flex-start;flex-direction:column;margin-bottom:45px;}.focus-panel .btn-primary{width:100%;}
  .section-kicker{align-items:flex-start;flex-direction:column;gap:4px;}
  .app-status{display:none;}.app-footer-inner{align-items:flex-start;flex-direction:column;}
  .chart-bars{gap:4px;padding-left:7px}.chart-bar{width:70%}.chart-bar-group small{font-size:8px;transform:rotate(-32deg);transform-origin:center top;overflow:visible;}
  table.data-table{min-width:760px;}
}
@media(max-width:390px){.metric-grid{grid-template-columns:1fr}.metric-card{min-height:104px}.metric-card strong{margin-top:12px}.quick-prompts{display:grid}.quick-prompts button{text-align:left}}

  /* Vault Styles */
  .vault-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));
    gap: 20px;
    margin-top: 24px;
  }
  .question-card {
    background: var(--surface-card);
    border: 1px solid var(--hairline-strong);
    border-radius: 12px;
    padding: 20px;
    display: flex;
    flex-direction: column;
    gap: 12px;
    position: relative;
    transition: transform 0.2s ease, border-color 0.2s ease;
  }
  .question-card:hover {
    transform: translateY(-2px);
    border-color: var(--accent-blue);
  }
  .question-img-container {
    width: 100%;
    height: 180px;
    border-radius: 8px;
    overflow: hidden;
    background: var(--surface-deep);
    border: 1px solid var(--divider-soft);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: zoom-in;
  }
  .question-img-container img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
  }
  .upload-zone {
    border: 2px dashed var(--hairline-strong);
    border-radius: 12px;
    padding: 32px 20px;
    text-align: center;
    background: rgba(255, 255, 255, 0.01);
    cursor: pointer;
    transition: border-color 0.15s ease, background 0.15s ease;
  }
  .upload-zone:hover {
    border-color: var(--accent-blue);
    background: rgba(59, 158, 255, 0.03);
  }
  .upload-preview-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));
    gap: 12px;
    margin-top: 16px;
  }
  .upload-preview-item {
    position: relative;
    aspect-ratio: 1;
    border-radius: 8px;
    overflow: hidden;
    border: 1px solid var(--hairline-strong);
    background: var(--surface-deep);
  }
  .upload-preview-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  .upload-preview-item button {
    position: absolute;
    top: 4px;
    right: 4px;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: rgba(0, 0, 0, 0.7);
    color: #fff;
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 10px;
  }
  .upload-preview-item button:hover {
    background: var(--accent-red);
  }
  .lightbox {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.9);
    backdrop-filter: blur(8px);
    z-index: 1000;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: zoom-out;
  }
  .lightbox img {
    max-width: 90%;
    max-height: 90%;
    object-fit: contain;
    border-radius: 4px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5);
  }
