:root {
 --primary: #1CA2D7;
 --secondary: #153F54;
 --accent: #FF9500;
 --bg: #1E1E1E;
 --text: #FFFFFF;
 --panel: #252526;
 --panel-2: #2D2D30;
 --border: #333333;
 --muted: #9CA3AF;
 --titlebar: #323233;
 --sidebar: #252526;
 --statusbar: #007ACC;
}

* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; height: 100%; background: var(--bg); color: var(--text); font-family: 'Montserrat', system-ui, sans-serif; font-size: 13px; -webkit-font-smoothing: antialiased; }.vscode {
 display: grid;
 grid-template-columns: 48px 240px 1fr 360px;
 grid-template-rows: 32px 1fr 24px;
 grid-template-areas:
 "title title title title"
 "act side main chat"
 "status status status status";
 height: 100vh;
 width: 100vw;
 overflow: hidden;
}

/* Title bar */.titlebar { grid-area: title; background: var(--titlebar); display: flex; align-items: center; padding: 0 12px; border-bottom: 1px solid #1a1a1a; }.traffic { display: flex; gap: 8px; }.dot { width: 12px; height: 12px; border-radius: 50%; display: inline-block; }.dot.red { background: #ff5f57; }.dot.yellow { background: #febc2e; }.dot.green { background: #28c840; }.title { flex: 1; text-align: center; font-size: 12px; color: #cccccc; font-family: 'Roboto Mono', monospace; }

/* Activity bar */.activitybar { grid-area: act; background: #333333; display: flex; flex-direction: column; align-items: center; padding-top: 10px; gap: 4px; border-right: 1px solid #1a1a1a; }.act-icon { width: 48px; height: 48px; display: flex; align-items: center; justify-content: center; color: #858585; cursor: pointer; border-left: 2px solid transparent; }.act-icon:hover { color: #fff; }.act-icon.active { color: #fff; border-left-color: var(--primary); }.act-icon.claude { color: var(--accent); }

/* Sidebar */.sidebar { grid-area: side; background: var(--sidebar); border-right: 1px solid #1a1a1a; overflow-y: auto; padding-bottom: 12px; }.sidebar-header { padding: 8px 16px; font-size: 11px; letter-spacing: 0.08em; color: #bbbbbb; text-transform: uppercase; font-family: 'Roboto Mono', monospace; }.sidebar-section { padding: 4px 16px 6px; font-size: 11px; color: #cccccc; font-weight: 600; letter-spacing: 0.05em; }.file-tree { list-style: none; margin: 0; padding: 0; font-size: 12.5px; color: #cccccc; }.file-tree li { padding: 3px 8px 3px 16px; display: flex; align-items: center; gap: 6px; cursor: pointer; user-select: none; }.file-tree li:hover { background: #2a2d2e; }.file-tree li.active { background: #094771; color: #fff; }.file-tree li.nested { padding-left: 34px; }.caret { width: 12px; display: inline-block; font-size: 10px; color: #858585; }.icon { width: 16px; height: 16px; display: inline-block; border-radius: 2px; }.folder-ic { background: linear-gradient(135deg, #c79b3a 0%, #dcb05a 100%); clip-path: polygon(0 20%, 35% 20%, 45% 5%, 100% 5%, 100% 100%, 0 100%); }.file-py { background: linear-gradient(135deg, #3776AB 50%, #FFD43B 50%); }.file-md { background: #519aba; }.file-img { background: linear-gradient(135deg, #a074c4 0%, #d3a4f1 100%); }.file-env { background: #ECD53F; }.file-gen { background: #6c6c6c; }.file-pdf { background: #e94c4c; }

/* Main */.main { grid-area: main; background: var(--bg); display: flex; flex-direction: column; min-width: 0; overflow: hidden; }.tabs { display: flex; background: #2d2d2d; border-bottom: 1px solid #1a1a1a; }.tab { display: flex; align-items: center; gap: 8px; padding: 8px 14px; font-size: 12.5px; color: #b8b8b8; border-right: 1px solid #1a1a1a; cursor: pointer; }.tab.active { background: var(--bg); color: #fff; }.tab.close { margin-left: 6px; color: #858585; font-size: 14px; }.editor { flex: 1; overflow: auto; background: #1a1a1a; }

/* PDF shell */.pdf-shell { max-width: 880px; margin: 28px auto; padding: 0 16px 60px; }.pdf-toolbar { display: flex; align-items: center; color: #9aa0a6; font-size: 11.5px; font-family: 'Roboto Mono', monospace; padding: 6px 14px; background: #2a2a2a; border-radius: 6px 6px 0 0; border: 1px solid #1a1a1a; }.pdf-toolbar.spacer { flex: 1; }.pdf-page { background: #ffffff; color: #1a1a1a; padding: 56px 64px 40px; border-radius: 0 0 6px 6px; box-shadow: 0 30px 80px rgba(0,0,0,0.4); font-family: 'Montserrat', sans-serif; }.pdf-header { display: flex; align-items: center; justify-content: space-between; padding-bottom: 22px; border-bottom: 2px solid #f0f0f0; }.logo-badge { background: linear-gradient(135deg, var(--primary) 0%, var(--secondary) 100%); color: #fff; font-family: 'Roboto Mono', monospace; font-weight: 700; padding: 14px 22px; border-radius: 8px; letter-spacing: 0.12em; font-size: 22px; box-shadow: 0 8px 22px rgba(28,162,215,0.25); }.pdf-header-meta { text-align: right; }.meta-label { font-size: 10px; letter-spacing: 0.14em; color: #888; font-family: 'Roboto Mono', monospace; }.meta-value { font-size: 13px; color: var(--secondary); font-weight: 600; margin-top: 4px; font-family: 'Roboto Mono', monospace; }.pdf-hero { padding: 30px 0 26px; }.eyebrow { font-family: 'Roboto Mono', monospace; font-size: 11px; letter-spacing: 0.18em; color: var(--primary); text-transform: uppercase; }.pdf-hero h1 { font-family: 'Roboto Mono', monospace; font-size: 36px; line-height: 1.15; color: var(--secondary); margin: 10px 0 14px; font-weight: 700; letter-spacing: -0.01em; }.hero-rule { width: 56px; height: 4px; background: var(--accent); border-radius: 3px; margin-bottom: 12px; }.hero-sub { color: #555; font-size: 13.5px; margin: 0; }.pdf-section { padding: 26px 0; border-top: 1px solid #f0f0f0; }.pdf-section h2 { font-family: 'Roboto Mono', monospace; font-size: 20px; color: var(--secondary); margin: 0 0 14px; letter-spacing: -0.005em; }.pdf-section h3 { font-family: 'Roboto Mono', monospace; font-size: 14px; color: var(--secondary); margin: 0 0 10px; letter-spacing: 0.01em; }.pdf-section p { color: #3a3a3a; line-height: 1.65; font-size: 13.5px; margin: 0 0 10px; }.pill-row { display: flex; gap: 12px; margin-top: 16px; flex-wrap: wrap; }.pill { background: #F4FAFD; border: 1px solid #DDEEF6; border-radius: 10px; padding: 12px 16px; display: flex; flex-direction: column; gap: 4px; min-width: 140px; }.pill-label { font-family: 'Roboto Mono', monospace; font-size: 10px; letter-spacing: 0.14em; color: #6F8BA0; text-transform: uppercase; }.pill-value { color: var(--secondary); font-weight: 700; font-size: 16px; }.grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }.card { background: #FAFBFC; border: 1px solid #EDEFF2; border-radius: 10px; padding: 18px 20px; }.card ul { margin: 0; padding-left: 18px; color: #3a3a3a; font-size: 13px; line-height: 1.7; }.card.strength { background: #FFF6EC; border-color: #FFE2C0; }.card.strength h3 { color: #B86A00; }.card.advantage { background: #ECF6FB; border-color: #C8E4F2; }.card.advantage h3 { color: var(--secondary); }.chart-caption { color: #666; font-size: 12.5px; margin-bottom: 18px; }.chart { display: grid; grid-template-columns: 130px 1fr 70px; gap: 8px 14px; align-items: center; }.chart.row-label { font-family: 'Roboto Mono', monospace; font-size: 12px; color: var(--secondary); }.chart.bar-track { background: #F0F4F7; border-radius: 4px; height: 18px; overflow: hidden; position: relative; }.chart.bar-fill { height: 100%; border-radius: 4px; background: linear-gradient(90deg, var(--primary), var(--secondary)); width: 0; transition: width 1.2s cubic-bezier(.2,.7,.2,1); }.chart.bar-fill.you { background: linear-gradient(90deg, var(--accent), #ffb04a); }.chart.row-val { font-family: 'Roboto Mono', monospace; font-size: 12px; color: #555; text-align: right; }.recs { list-style: none; counter-reset: rec; padding: 0; margin: 8px 0 0; }.recs li { counter-increment: rec; display: flex; gap: 14px; padding: 14px 16px; background: #FAFBFC; border: 1px solid #EDEFF2; border-radius: 10px; margin-bottom: 10px; align-items: flex-start; }.recs li::before { content: counter(rec, decimal-leading-zero); font-family: 'Roboto Mono', monospace; color: var(--primary); font-weight: 700; font-size: 14px; min-width: 28px; }.recs li strong { color: var(--secondary); font-size: 13.5px; display: block; margin-bottom: 4px; }.recs li p { margin: 0; font-size: 12.5px; color: #555; }.tag { display: inline-block; font-family: 'Roboto Mono', monospace; font-size: 10px; letter-spacing: 0.14em; padding: 3px 8px; border-radius: 4px; background: #E6F4FB; color: var(--secondary); margin-right: 8px; align-self: center; }.tag.urgent { background: #FFE9D1; color: #C45A00; }.pdf-footer { margin-top: 28px; padding-top: 14px; border-top: 1px solid #f0f0f0; display: flex; justify-content: space-between; font-family: 'Roboto Mono', monospace; font-size: 10.5px; color: #999; letter-spacing: 0.06em; }

/* Chat */.chat { grid-area: chat; background: #1B1B1B; border-left: 1px solid #1a1a1a; display: flex; flex-direction: column; min-width: 0; }.chat-header { display: flex; align-items: center; gap: 10px; padding: 12px 16px; border-bottom: 1px solid #2a2a2a; font-family: 'Roboto Mono', monospace; font-size: 12px; color: #ddd; }.chat-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--accent); box-shadow: 0 0 8px var(--accent); }.chat-model { margin-left: auto; color: var(--muted); font-size: 10.5px; }.chat-body { flex: 1; overflow-y: auto; padding: 14px 14px 4px; display: flex; flex-direction: column; gap: 12px; }.msg { font-size: 12.5px; line-height: 1.55; padding: 10px 12px; border-radius: 10px; max-width: 92%; word-wrap: break-word; animation: fade 0.3s ease; }.msg.user { background: #094771; color: #fff; align-self: flex-end; border-bottom-right-radius: 2px; }.msg.claude { background: #262626; color: #e6e6e6; border-left: 3px solid var(--accent); border-bottom-left-radius: 2px; }.msg.action { background: transparent; color: var(--primary); font-family: 'Roboto Mono', monospace; font-size: 11.5px; padding: 4px 8px; border-left: 2px solid var(--primary); }.msg.tool { background: #161616; color: #b6e7c9; font-family: 'Roboto Mono', monospace; font-size: 11.5px; border: 1px solid #2a2a2a; }.msg.label { display: block; font-family: 'Roboto Mono', monospace; font-size: 10px; letter-spacing: 0.12em; color: var(--muted); margin-bottom: 4px; text-transform: uppercase; }
 fade { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: none; } }.chat-input { display: flex; gap: 8px; padding: 10px 12px; border-top: 1px solid #2a2a2a; background: #1B1B1B; }.chat-input input { flex: 1; background: #2A2A2A; border: 1px solid #333; color: #fff; padding: 9px 12px; border-radius: 8px; font-family: 'Montserrat', sans-serif; font-size: 12.5px; outline: none; }.chat-input input:focus { border-color: var(--primary); }.chat-input button { background: var(--primary); color: #fff; border: none; padding: 0 12px; border-radius: 8px; cursor: pointer; display: flex; align-items: center; }.chat-input button:hover { background: #158FBE; }

/* Status bar */.statusbar { grid-area: status; background: var(--statusbar); color: #fff; display: flex; align-items: center; padding: 0 12px; font-size: 11.5px; font-family: 'Roboto Mono', monospace; gap: 14px; }.sb-item { display: flex; align-items: center; gap: 4px; }.sb-spacer { flex: 1; }.sb-item.primary { background: rgba(0,0,0,0.15); padding: 0 8px; height: 100%; display: flex; align-items: center; }

/* Responsive */
 (max-width: 1100px) {.vscode { grid-template-columns: 48px 220px 1fr; grid-template-areas: "title title title" "act side main" "status status status"; }.chat { display: none; }
}
 (max-width: 760px) {.vscode { grid-template-columns: 1fr; grid-template-rows: 32px auto 1fr 24px; grid-template-areas: "title" "side" "main" "status"; }.activitybar { display: none; }.sidebar { max-height: 180px; }.pdf-page { padding: 28px 22px; }.pdf-hero h1 { font-size: 26px; }.grid-2 { grid-template-columns: 1fr; }.chart { grid-template-columns: 100px 1fr 56px; }
}
