:root{--ink:#10141a;--paper:#faf8f4;--sand:#f1ede4;--teal:#11636b;--teal-deep:#0b494f;--brass:#b68a4e;--brass-text:#87621f;--mist:#717a84;--line:#e3ddd0;--on-ink:#f3f1ea;--danger:#a33a2c;--success:#2f6b3f;--radius:3px;--font-sans:"Work Sans", system-ui, -apple-system, sans-serif;--font-serif:"Fraunces", Georgia, serif}*{box-sizing:border-box}body{background:var(--sand);color:var(--ink);font-family:var(--font-sans);margin:0;font-size:15px;line-height:1.45}h1,h2{font-family:var(--font-serif);margin:0;font-weight:600}h1{font-size:28px}h2{margin-bottom:14px;font-size:18px}a{color:var(--teal)}.muted{color:var(--mist)}.ref{color:var(--mist);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px}.btn{font:inherit;border-radius:var(--radius);cursor:pointer;white-space:nowrap;border:1px solid #0000;padding:9px 16px;font-weight:500}.btn:disabled{opacity:.55;cursor:default}.btn-primary{background:var(--teal-deep);color:var(--on-ink)}.btn-primary:hover:not(:disabled){background:var(--teal)}.btn-ghost{border-color:var(--line);color:var(--ink);background:0 0}.btn-ghost:hover:not(:disabled){border-color:var(--mist)}.btn-danger{background:var(--danger);color:#fff}.btn-danger-ghost{border-color:var(--line);color:var(--danger);background:0 0}.splash,.signin{min-height:100vh;color:var(--mist);place-items:center;display:grid}.signin-card{background:var(--paper);border-radius:var(--radius);text-align:center;width:min(380px,100% - 32px);color:var(--ink);padding:40px 36px}.signin-card .brand{color:var(--teal-deep)}.signin-card h1{margin:12px 0 6px}.signin-card p{color:var(--mist);margin:0 0 24px}.brand{letter-spacing:1px;color:var(--on-ink);font-weight:600;text-decoration:none}.brand span{color:var(--brass);letter-spacing:0;margin-left:4px;font-weight:400}.topbar{background:var(--teal-deep);color:var(--on-ink);justify-content:space-between;align-items:center;gap:12px;padding:12px 24px;display:flex}.topbar-user{align-items:center;gap:12px;font-size:14px;display:flex}.topbar .btn-ghost{color:var(--on-ink);border-color:#f3f1ea4d;padding:6px 12px}.badge-mock{background:var(--brass);color:var(--ink);border-radius:var(--radius);padding:2px 8px;font-size:12px}.content{max-width:1200px;margin:0 auto;padding:28px 24px 60px}.page-head{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:20px;display:flex}.page-head p{margin:4px 0 0}.back{margin-bottom:14px;font-size:14px;text-decoration:none;display:inline-block}.toolbar{flex-wrap:wrap;justify-content:space-between;gap:12px;margin-bottom:16px;display:flex}.filters{flex-wrap:wrap;gap:6px;display:flex}.filter{font:inherit;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);cursor:pointer;padding:6px 12px;font-size:14px}.filter.active{background:var(--ink);color:var(--on-ink);border-color:var(--ink)}.filter .count{color:var(--mist);margin-left:4px}.filter.active .count{color:var(--brass)}.search,input,textarea{font:inherit;border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);color:var(--ink);padding:8px 12px}.search{min-width:260px}input:focus,textarea:focus,.btn:focus-visible,.filter:focus-visible{outline:2px solid var(--brass);outline-offset:1px}.status{white-space:nowrap;border-radius:20px;padding:3px 10px;font-size:13px;font-weight:500;display:inline-block}.status-new{color:#24527a;background:#e6eef7}.status-proposed{color:var(--brass-text);background:#f6ecdc}.status-won{color:var(--success);background:#e3efe5}.status-lost{color:var(--danger);background:#f3e3e0}.status-other{background:var(--line);color:var(--mist)}.quotes{border-collapse:collapse;background:var(--paper);border-radius:var(--radius);width:100%;overflow:hidden}.quotes th{text-align:left;text-transform:uppercase;letter-spacing:.5px;color:var(--mist);border-bottom:1px solid var(--line);padding:12px 14px;font-size:12px;font-weight:500}.quotes td{border-bottom:1px solid var(--line);vertical-align:top;padding:12px 14px;font-size:14px}.quotes tbody tr{cursor:pointer}.quotes tbody tr:hover{background:#f5f1e9}.quotes .sub{color:var(--mist);font-size:13px;display:block}.quotes .route{max-width:280px}.num{text-align:right;white-space:nowrap}.alert{color:var(--danger);border-radius:var(--radius);background:#f3e3e0;padding:10px 14px}.success{color:var(--success);border-radius:var(--radius);background:#e3efe5;padding:10px 14px}.empty{background:var(--paper);text-align:center;color:var(--mist);border-radius:var(--radius);padding:40px}.detail{grid-template-columns:1fr 340px;align-items:start;gap:20px;display:grid}.detail-main{gap:20px;display:grid}.panel{background:var(--paper);border-radius:var(--radius);padding:22px 24px}.route-steps{border-left:2px solid var(--brass);gap:12px;margin:0 0 18px;padding:0 0 0 18px;list-style:none;display:grid}.route-steps span{text-transform:uppercase;letter-spacing:.5px;color:var(--mist);font-size:12px;display:block}.facts{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px 20px;margin:0;display:grid}.fact dt{text-transform:uppercase;letter-spacing:.5px;color:var(--mist);font-size:12px}.fact dd{overflow-wrap:anywhere;margin:2px 0 0;font-weight:500}.actions{gap:16px;display:grid;position:sticky;top:20px}.actions h2{margin-bottom:0}.actions .alert,.actions .success{margin:0;font-size:14px}.action-block{flex-direction:column;gap:8px;display:flex}.action-block label{font-size:13px;font-weight:500}.action-block .inline{gap:8px;display:flex}.action-block .inline input{flex:1;min-width:0}.action-block>.btn{width:100%}.hint{color:var(--mist);margin:0;font-size:13px}@media (width<=900px){.detail{grid-template-columns:1fr}.actions{position:static}}@media (width<=720px){.content{padding:20px 16px 48px}.topbar{padding:12px 16px}.topbar-email{display:none}.search{width:100%;min-width:0}.quotes,.quotes tbody,.quotes tr,.quotes td{width:100%;display:block}.quotes thead{display:none}.quotes tr{border-bottom:1px solid var(--line);padding:8px 0}.quotes td{border:0;justify-content:space-between;gap:12px;padding:4px 16px;display:flex}.quotes td:before{content:attr(data-label);color:var(--mist);text-transform:uppercase;flex-shrink:0;font-size:12px}.quotes td>*{text-align:right}.quotes .route{max-width:none}.num{text-align:left}}
