:root{--sp-1: var(--space-sp4);--sp-2: var(--space-sp8);--sp-3: var(--space-sp12);--sp-4: var(--space-sp16);--sp-5: 20px;--sp-6: 24px;--sp-8: var(--space-sp32);--sp-10: 40px;--sp-12: 48px;--sp-16: 64px;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--shadow-sm: 0 1px 2px rgba(15, 23, 42, .06);--shadow-md: var(--shadow-shadow1);--shadow-lg: 0 12px 32px rgba(15, 23, 42, .12);--font-family-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;min-height:100vh}body{font-family:var(--font-family-ui);color:var(--color-grey-black);background:var(--color-grey-grey-lighter);-webkit-font-smoothing:antialiased}a{color:var(--color-brand-new-purple);text-decoration:none}a:hover{text-decoration:underline}button{font-family:inherit;cursor:pointer}code,pre{font-family:var(--font-family-mono);font-size:.9em}.app{max-width:820px;margin:0 auto;padding:var(--sp-8) var(--sp-5)}.app-header{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:var(--sp-8)}.app-title{font-size:22px;font-weight:700;letter-spacing:-.01em;display:flex;align-items:center;gap:8px}.app-title .emoji{margin-right:6px}.app-title .brand-wordmark{height:22px;width:auto;color:var(--color-grey-black);display:block}.app-title .brand-divider{color:var(--color-grey-grey-light);font-weight:400}.app-title .lifeboat-mark{font-size:20px}.app-title .lifeboat-name{color:var(--color-brand-new-purple)}.app-subtitle{color:var(--color-grey-grey-darker);font-size:13px}.card{background:var(--color-grey-white);border:1px solid var(--color-grey-grey-light);border-radius:var(--radius-lg);padding:var(--sp-6);box-shadow:var(--shadow-sm);margin-bottom:var(--sp-5)}.card h2{margin:0 0 var(--sp-4);font-size:18px}.card p{margin:0 0 var(--sp-3);color:var(--color-grey-black);line-height:1.7}.card .helper{color:var(--color-grey-grey-darker);font-size:13px}.btn{display:inline-flex;align-items:center;gap:8px;padding:10px 18px;border-radius:var(--radius-md);border:1px solid transparent;font-weight:600;font-size:14px;transition:background .15s,transform .1s}.btn:active{transform:translateY(1px)}.btn-primary{background:var(--color-brand-new-purple);color:var(--color-grey-white)}.btn-primary:hover{background:var(--color-primary-700)}.btn-primary:disabled{background:var(--color-grey-grey-light);cursor:not-allowed}.btn-secondary{background:var(--color-grey-white);border-color:var(--color-grey-grey-light);color:var(--color-grey-black)}.btn-secondary:hover{border-color:var(--color-brand-new-purple);color:var(--color-brand-new-purple)}.btn-ghost{background:transparent;color:var(--color-grey-grey-darker);padding:6px 10px}.input{width:100%;padding:12px 14px;border:1px solid var(--color-grey-grey-light);border-radius:var(--radius-md);font-size:16px;font-family:inherit;background:var(--color-grey-white)}.input:focus{outline:none;border-color:var(--color-brand-new-purple);box-shadow:0 0 0 3px var(--color-primary-0)}.input.mono{font-family:var(--font-family-mono);font-size:13px}.flow-picker{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-4);margin-bottom:var(--sp-6)}.flow-card{padding:var(--sp-5);border:2px solid var(--color-grey-grey-light);border-radius:var(--radius-lg);background:var(--color-grey-white);cursor:pointer;text-align:left;transition:border-color .15s,box-shadow .15s}.flow-card:hover{border-color:var(--color-primary-400);box-shadow:var(--shadow-md)}.flow-card.selected{border-color:var(--color-brand-new-purple);background:var(--color-primary-0)}.flow-card .icon{font-size:28px;margin-bottom:var(--sp-2)}.flow-card .label{font-weight:700;font-size:15px;margin-bottom:var(--sp-1)}.flow-card .desc{font-size:13px;color:var(--color-grey-grey-darker);line-height:1.6}.flow-card .skill{display:inline-block;margin-top:var(--sp-3);font-size:11px;padding:3px 8px;border-radius:999px;background:var(--color-grey-grey-hover);color:var(--color-grey-black)}.trust{background:var(--color-info-0);border-left:3px solid var(--color-info-500);padding:var(--sp-3) var(--sp-4);border-radius:var(--radius-sm);font-size:13px;color:var(--color-grey-black);margin-bottom:var(--sp-4);line-height:1.6}.trust strong{color:var(--color-grey-black)}.progress-outer{background:var(--color-grey-grey-hover);border-radius:999px;height:8px;overflow:hidden;margin:var(--sp-2) 0}.progress-inner{height:100%;background:var(--color-brand-new-purple);transition:width .3s}.log{font-family:var(--font-family-mono);font-size:11px;background:var(--color-grey-black);color:#d1d5db;padding:var(--sp-3) var(--sp-4);border-radius:var(--radius-md);max-height:180px;overflow:auto;line-height:1.6}.log .line{white-space:pre-wrap;word-break:break-all}.log .line.err{color:#fca5a5}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:var(--sp-3);margin-top:var(--sp-4)}.stat{background:var(--color-grey-grey-hover);padding:var(--sp-3);border-radius:var(--radius-md);text-align:center}.stat .v{font-size:22px;font-weight:700;color:var(--color-brand-new-purple)}.stat .k{font-size:11px;color:var(--color-grey-grey-darker)}.callout{padding:var(--sp-3) var(--sp-4);background:var(--color-attention-0);border-left:3px solid var(--color-function-warn);border-radius:var(--radius-sm);font-size:13px;margin:var(--sp-3) 0}.callout.info{background:var(--color-info-0);border-left-color:var(--color-info-500)}.callout.success{background:var(--color-secondary-0);border-left-color:var(--color-function-positive)}.callout.error{background:var(--color-function-insufficient);border-left-color:var(--color-function-negative)}.callout.license-notice{background:var(--color-info-0);border-left-color:var(--color-info-500);margin:var(--sp-3) 0}.license-notice .license-title{font-weight:600;margin-bottom:4px;font-size:13px}.license-notice .license-body{font-size:12px;line-height:1.6}.license-notice ul{list-style:disc}.back{background:none;border:none;color:var(--color-grey-grey-darker);padding:0;margin-bottom:var(--sp-3);font-size:13px}.back:hover{color:var(--color-brand-new-purple)}.app-footer{margin-top:var(--sp-12);padding-top:var(--sp-6);border-top:1px solid var(--color-grey-grey-light);font-size:12px;color:var(--color-grey-grey-darker);text-align:center;line-height:1.7}@media (max-width: 640px){.flow-picker{grid-template-columns:1fr}.app{padding:var(--sp-5) var(--sp-4)}}
