:root{--c-indigo: #1e3a8a;--c-teal-50: #e1f5ee;--c-teal-100: #9fe1cb;--c-teal-400: #1d9e75;--c-teal-600: #0f6e56;--c-teal-800: #085041;--c-amber-50: #faeeda;--c-amber-200: #fac775;--c-amber-600: #ef9f27;--c-amber-800: #854f0b;--c-purple-50: #eeedfe;--c-purple-600: #534ab7;--c-text: #0f172a;--c-text-muted: #64748b;--c-text-tertiary: #94a3b8;--c-bg: #f8fafc;--c-card: #ffffff;--c-border: #e2e8f0;--radius-md: 8px;--radius-lg: 12px;--font-head: Georgia, serif;--font-body: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif}*{box-sizing:border-box}html,body,#app{margin:0;padding:0;font-family:var(--font-body);color:var(--c-text);background:var(--c-bg);min-height:100vh}body{font-size:14px;line-height:1.6;-webkit-font-smoothing:antialiased}h1,h2,h3{font-family:var(--font-head);font-weight:500;margin:0}button{font-family:inherit;cursor:pointer}a{color:var(--c-teal-600);text-decoration:none}.app-shell{max-width:1100px;margin:0 auto;padding:24px}.appbar{display:flex;align-items:center;justify-content:space-between;padding:12px 0 20px;border-bottom:1px solid var(--c-border);margin-bottom:24px}.brand{font-family:var(--font-head);font-size:18px;font-weight:500;color:var(--c-teal-600)}.brand em{font-style:italic;color:var(--c-teal-400);font-weight:400}.crumbs{display:flex;gap:4px;align-items:center;font-size:12px;color:var(--c-text-tertiary)}@media (max-width: 760px){.crumbs{display:none}}.crumb{padding:3px 8px;border-radius:var(--radius-md)}.crumb.on{background:var(--c-teal-50);color:var(--c-teal-800);font-weight:500}.eyebrow{font-size:11px;letter-spacing:.06em;color:var(--c-amber-600);font-weight:500;margin:0 0 8px}.page-title{font-size:26px;margin:0 0 6px}.page-sub{font-size:14px;color:var(--c-text-muted);margin:0 0 24px}.card{background:var(--c-card);border:1px solid var(--c-border);border-radius:var(--radius-lg);padding:18px 20px;margin-bottom:16px}.btn{background:var(--c-teal-600);color:#fff;border:none;padding:10px 18px;font-size:14px;font-weight:500;border-radius:var(--radius-md);transition:background .15s}.btn:hover{background:var(--c-teal-800)}.btn:disabled{background:var(--c-text-tertiary);cursor:not-allowed}.btn-ghost{background:transparent;color:var(--c-text);border:1px solid var(--c-border)}.btn-ghost:hover{background:var(--c-bg)}.chip{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;font-size:11px;border-radius:var(--radius-md);background:var(--c-bg);color:var(--c-text-muted);font-weight:500}.chip.pass{background:var(--c-teal-50);color:var(--c-teal-800)}.chip.warn{background:var(--c-amber-50);color:var(--c-amber-800)}.input,.textarea,.select{width:100%;padding:9px 12px;font-size:14px;font-family:inherit;border:1px solid var(--c-border);border-radius:var(--radius-md);background:#fff;color:var(--c-text)}.textarea{min-height:80px;resize:vertical}.input:focus,.textarea:focus,.select:focus{outline:none;border-color:var(--c-teal-400);box-shadow:0 0 0 3px #1d9e7526}.muted{color:var(--c-text-muted);font-size:12px}.lab{font-size:11px;color:var(--c-text-tertiary);margin:0 0 4px;font-weight:500}.grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}.tool-tile{background:#fff;border:1px solid var(--c-border);border-radius:var(--radius-md);padding:14px;cursor:pointer;text-align:center;transition:all .15s}.tool-tile.on{border:2px solid var(--c-teal-400);background:var(--c-teal-50);padding:13px}.tool-tile:hover{border-color:var(--c-teal-400)}.tool-tile h4{font-size:14px;margin:8px 0 4px;font-family:var(--font-body);font-weight:500}.tool-tile .tool-sub{font-size:11px;color:var(--c-text-muted)}.flex{display:flex}.flex-between{display:flex;align-items:center;justify-content:space-between}.gap-8{gap:8px}.gap-12{gap:12px}.spinner{display:inline-block;width:16px;height:16px;border:2px solid var(--c-teal-50);border-top-color:var(--c-teal-600);border-radius:50%;animation:spin .8s linear infinite;vertical-align:-3px;margin-right:6px}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width: 640px){.app-shell{padding:16px}.appbar{flex-wrap:wrap;gap:8px;padding:10px 0 14px;margin-bottom:18px}.page-title{font-size:22px}.page-sub{margin-bottom:18px}.flex-between{flex-wrap:wrap;gap:8px}.btn{padding:11px 18px}.input,.textarea,.select{font-size:16px}}
