:root{--px-ink:#172033;--px-muted:#647085;--px-border:#dfe4ec;--px-bg:#f6f8fb;--bs-primary:#3157d5;--bs-primary-rgb:49,87,213;--bs-link-color:#3157d5;--bs-body-color:var(--px-ink);--bs-body-bg:var(--px-bg);--bs-border-color:var(--px-border)}
body{font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;letter-spacing:-.01em}.navbar{box-shadow:0 1px 0 rgba(16,24,40,.02)}.brand-mark{display:inline-grid;place-items:center;width:1.85rem;height:1.85rem;border-radius:.5rem;background:var(--px-ink);color:#fff;margin-right:.3rem}.hero{background:#fff}.py-lg-6{padding-top:7rem!important;padding-bottom:7rem!important}.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:.72rem;font-weight:700;color:#3157d5}.platform-card,.card,.metric-card{background:#fff;border:1px solid var(--px-border);border-radius:1rem;box-shadow:none}.feature-list{list-style:none;padding:0;margin:0}.feature-list li{padding:.9rem 0;border-bottom:1px solid var(--px-border)}.feature-list li:last-child{border-bottom:0}.feature-list li:before{content:"✓";color:#21845a;font-weight:700;margin-right:.75rem}.auth-wrap{min-height:72vh;display:grid;place-items:center;padding:3rem 1rem}.auth-card{width:100%;max-width:31rem}.form-control{border-color:#cfd6e2;padding:.72rem .85rem}.form-control:focus{border-color:#6581df;box-shadow:0 0 0 .2rem rgba(49,87,213,.12)}.btn{border-radius:.55rem;font-weight:600}.metric-card{padding:1.4rem}.metric-value{font-size:2rem;font-weight:700;line-height:1.1;margin-bottom:.45rem}.project-row{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.2rem;background:#fff;border:1px solid var(--px-border);margin-bottom:.6rem;border-radius:.75rem;text-decoration:none;color:inherit}.project-row:hover,.project-card:hover{border-color:#b6c2d5}.empty-state{text-align:center;padding:4rem 1.5rem;background:#fff;border:1px dashed #bcc7d6;border-radius:1rem}.project-card{transition:border-color .15s}.project-description{min-height:4.5rem}.indicator-row{display:flex;gap:.5rem;flex-wrap:wrap}.indicator{font-size:.74rem;background:#f0f2f6;color:var(--px-muted);padding:.25rem .5rem;border-radius:.35rem}.indicator.active{background:#e3f5ec;color:#16704a}.content-narrow{max-width:790px;margin:0 auto}.detail-list dt{color:var(--px-muted);font-weight:500}.idea-text{white-space:pre-wrap;line-height:1.75}.activity-item{display:flex;gap:1rem;padding:0 0 1.25rem}.activity-dot{width:.65rem;height:.65rem;border-radius:50%;background:#3157d5;margin-top:.45rem;flex:0 0 auto}.status-list{margin:0}.status-list>div{display:flex;justify-content:space-between;gap:1rem;padding:.9rem 0;border-bottom:1px solid var(--px-border)}.status-list>div:last-child{border:0}.status-list dt{font-weight:500}.status-list dd{margin:0;text-align:right;color:var(--px-muted)}.status-dot{display:inline-block;width:.55rem;height:.55rem;border-radius:50%;margin-right:.4rem}.status-dot.ok{background:#198754}.status-dot.error{background:#dc3545}
@media(max-width:991.98px){.py-lg-6{padding-top:4rem!important;padding-bottom:4rem!important}.navbar-nav{padding:1rem 0;align-items:stretch!important}.navbar-nav form .btn{width:100%}}
.admin-module{display:flex;flex-direction:column;height:100%;padding:1.5rem;background:#fff;border:1px solid var(--px-border);border-radius:1rem;text-decoration:none;color:inherit}.admin-module:hover{border-color:#b6c2d5}.admin-module strong{font-size:1.05rem}.admin-module small{color:var(--px-muted);margin-top:.25rem}.table>:not(caption)>*>*{padding:1rem 1.1rem}.font-monospace{font-size:.82em}.status-badge{width:fit-content;height:fit-content;white-space:nowrap}
body.app-chat{background:#fff}.app-chat{--c-ink:#0d0d0d;--c-muted:#8b8b99;--c-line:#ececf1;--c-surface:#f7f7f8}.app-chat .navbar{border-bottom:1px solid var(--c-line)!important}.chat-wrap{max-width:47rem;margin:0 auto}.chat-start{padding-top:4rem;text-align:center}.chat-greeting{font-size:2rem;font-weight:600;letter-spacing:-.025em;color:var(--c-ink);margin-bottom:.6rem}.chat-sub{color:var(--c-muted);font-size:.95rem;line-height:1.65;max-width:34rem;margin:0 auto 2rem}.chat-start .composer{text-align:left}.chat-head{margin-bottom:2.25rem}.chat-back{display:inline-block;font-size:.8rem;color:var(--c-muted);text-decoration:none;margin-bottom:.6rem}.chat-back:hover{color:var(--c-ink)}.chat-title{font-size:1.45rem;font-weight:600;letter-spacing:-.02em;color:var(--c-ink);margin:0}
.thread{display:flex;flex-direction:column;gap:1.9rem;margin-bottom:2rem}.msg{display:flex;gap:.85rem;align-items:flex-start}.msg.is-user{justify-content:flex-end}.msg-avatar{flex:0 0 1.7rem;width:1.7rem;height:1.7rem;border-radius:50%;background:var(--c-ink);color:#fff;display:grid;place-items:center;font-size:.6rem;font-weight:700;margin-top:.2rem}.msg-main{min-width:0}.msg.is-user .msg-main{max-width:min(88%,34rem)}.msg.is-user .msg-label{text-align:right}.msg-label{font-size:.73rem;color:var(--c-muted);margin-bottom:.35rem}.msg-body{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.75;color:var(--c-ink)}.msg.is-user .msg-body{background:var(--c-surface);border-radius:1.15rem;padding:.7rem 1.05rem}.msg-body.is-pending{color:var(--c-muted)}
.composer{background:#fff;border:1px solid var(--c-line);border-radius:1.5rem;padding:.8rem .9rem .6rem;box-shadow:0 2px 14px rgba(13,13,13,.05);transition:box-shadow .15s,border-color .15s}.composer:focus-within{border-color:#d8d8e0;box-shadow:0 4px 22px rgba(13,13,13,.09)}.composer .form-control{border:0;background:transparent;color:var(--c-ink);padding:.3rem .4rem;box-shadow:none}.composer .form-control::placeholder{color:var(--c-muted)}.composer .form-control.is-invalid{background-image:none}.composer-name{font-weight:600;border-bottom:1px solid var(--c-line)!important;border-radius:0;padding-bottom:.55rem!important;margin-bottom:.15rem}.composer-input{resize:none;max-height:17rem;overflow-y:auto;line-height:1.6}.composer-bar{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-top:.15rem}.composer-tools{display:flex;gap:.15rem}.composer-tool{width:2.1rem;height:2.1rem;border-radius:50%;border:0;background:transparent;color:var(--c-muted);display:grid;place-items:center;cursor:not-allowed;opacity:.7}.composer-send{width:2.1rem;height:2.1rem;border-radius:50%;border:0;background:var(--c-ink);color:#fff;display:grid;place-items:center;transition:background .15s}.composer-send:hover{background:#33333d}.composer-hint{font-size:.74rem;color:var(--c-muted);text-align:center;margin:.8rem 0 0}
.suggestions{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;margin-top:1.75rem}.suggestion{border:1px solid var(--c-line);background:#fff;border-radius:1rem;padding:.6rem 1rem;font-size:.85rem;color:var(--c-ink);transition:background .15s,border-color .15s}.suggestion:hover{background:var(--c-surface);border-color:#dcdce4}
.rail{display:flex;flex-direction:column;gap:2.25rem;font-size:.875rem}.rail-title{font-size:.7rem;text-transform:uppercase;letter-spacing:.09em;color:var(--c-muted);font-weight:600;margin-bottom:1rem}.rail-row{display:flex;justify-content:space-between;gap:1rem;padding:.6rem 0;border-bottom:1px solid var(--c-line)}.rail-row:last-child{border-bottom:0}.rail-row span:last-child{color:var(--c-muted)}.rail-activity{display:flex;gap:.7rem;padding-bottom:.85rem}.rail-activity:last-child{padding-bottom:0}.rail-activity p{font-size:.83rem;color:var(--c-ink)}.rail-activity small{color:var(--c-muted);font-size:.73rem}.rail-dot{flex:0 0 .4rem;width:.4rem;height:.4rem;border-radius:50%;background:#c9c9d4;margin-top:.45rem}
.steps{list-style:none;padding:0;margin:0}.steps li{display:flex;gap:.8rem;padding-bottom:.95rem;position:relative}.steps li:after{content:"";position:absolute;left:.33rem;top:1.05rem;bottom:-.05rem;width:1px;background:var(--c-line)}.steps li:last-child{padding-bottom:0}.steps li:last-child:after{display:none}.steps .dot{flex:0 0 .72rem;width:.72rem;height:.72rem;border-radius:50%;background:#fff;border:1.5px solid #dcdce4;margin-top:.3rem;position:relative;z-index:1}.steps li.done .dot{background:var(--c-ink);border-color:var(--c-ink)}.steps li.current .dot{background:#3157d5;border-color:#3157d5;box-shadow:0 0 0 3px rgba(49,87,213,.16)}.steps strong{display:block;font-size:.85rem;font-weight:500;color:var(--c-muted)}.steps li.done strong{color:var(--c-ink)}.steps li.current strong{color:#3157d5;font-weight:600}.steps small{display:block;color:var(--c-muted);font-size:.74rem;margin-top:.1rem}
@media(max-width:991.98px){.chat-start{padding-top:1.5rem}.chat-greeting{font-size:1.6rem}.rail{margin-top:1rem}}
