:root{--ink: #0f172a;--ink-soft: #475569;--ink-faint: #94a3b8;--bg: #f8fafc;--card: #ffffff;--line: #e2e8f0;--green: #16a34a;--green-dark: #15803d;--red: #dc2626;--amber: #d97706;--blue: #2563eb;--radius: 12px}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:15px;line-height:1.45;-webkit-font-smoothing:antialiased}.app{max-width:420px;margin:0 auto;padding:0 12px 48px}.app-header{display:flex;align-items:center;gap:10px;padding:14px 2px 10px;position:sticky;top:0;background:color-mix(in srgb,var(--bg) 88%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:5}.wordmark{font-weight:800;font-size:18px;letter-spacing:-.02em}.deal-ref{flex:1;color:var(--ink-faint);font-size:12px;font-variant-numeric:tabular-nums;letter-spacing:.04em}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px;margin-bottom:12px;box-shadow:0 1px 2px #0f172a0a}.card-title{margin:0 0 8px;font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft)}.card-subtitle{margin:0 0 10px;color:var(--ink-faint);font-size:13px}.hero-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.terms-version{font-size:11px;color:var(--ink-faint)}.hero-title{margin:0;font-size:22px;line-height:1.2;letter-spacing:-.01em}.hero-price{margin:6px 0 12px;font-size:28px;font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:-.02em}.handshake{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--bg);margin-bottom:10px}.handshake-count{font-size:14px}.handshake-hint{font-size:12px;color:var(--ink-soft)}.hero-parties{display:flex;flex-wrap:wrap;gap:6px}.party{font-size:12px;padding:4px 8px;border:1px solid var(--line);border-radius:999px;color:var(--ink-soft)}.party em{font-style:normal;color:var(--ink-faint)}.party-confirmed{border-color:#bbf7d0;background:#f0fdf4;color:var(--green-dark)}.badge{display:inline-block;font-size:12px;font-weight:700;padding:4px 10px;border-radius:999px;letter-spacing:.02em}.state-NEGOTIATING{background:#f1f5f9;color:#475569}.state-PROPOSED{background:#fef3c7;color:#b45309}.state-AGREED{background:#dbeafe;color:#1d4ed8}.state-SECURED{background:#e0e7ff;color:#4338ca}.state-IN_FULFILMENT{background:#ede9fe;color:#6d28d9}.state-COMPLETED{background:#dcfce7;color:#15803d}.state-CANCELLED,.state-EXPIRED{background:#e2e8f0;color:#475569}.state-ISSUE_RAISED{background:#fee2e2;color:#b91c1c}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid transparent;border-radius:10px;font:inherit;font-weight:600;padding:11px 16px;cursor:pointer;transition:transform .05s ease,opacity .15s ease}.btn:active{transform:scale(.99)}.btn:disabled{opacity:.55;cursor:default}.btn-block{display:block;width:100%;text-align:center}.btn-primary{background:var(--ink);color:#fff}.btn-secondary{background:#fff;color:var(--ink);border-color:var(--line)}.btn-success{background:var(--green);color:#fff}.btn-climax{font-size:17px;padding:15px 16px;box-shadow:0 6px 16px #16a34a59}.btn-danger{background:#fef2f2;color:var(--red);border-color:#fecaca}.btn-ghost{background:transparent;color:var(--ink-soft);border-color:var(--line)}.btn-small{padding:6px 10px;font-size:12px;border-radius:8px}.action-bar{margin-bottom:12px}.action-cta{margin-bottom:8px}.action-hint{margin:6px 2px 0;font-size:12px;color:var(--ink-soft)}.action-info{margin:0 0 8px;padding:10px 12px;border:1px dashed var(--line);border-radius:10px;background:var(--card);color:var(--ink-soft);font-size:13px}.action-overflow{position:relative;text-align:right}.overflow-menu{position:absolute;right:0;top:calc(100% + 4px);background:var(--card);border:1px solid var(--line);border-radius:10px;box-shadow:0 8px 24px #0f172a1f;overflow:hidden;z-index:10;min-width:220px}.overflow-item{display:block;width:100%;text-align:left;background:none;border:none;border-bottom:1px solid var(--line);padding:12px 14px;font:inherit;cursor:pointer}.overflow-item:last-child{border-bottom:none}.overflow-item:hover{background:var(--bg)}.overflow-danger{color:var(--red)}.milestones{list-style:none;margin:0;padding:0}.milestone{display:flex;align-items:flex-start;gap:10px;padding:9px 0;border-bottom:1px solid var(--line)}.milestone:last-child{border-bottom:none}.milestone-icon{width:20px;text-align:center;font-size:15px;line-height:1.4}.icon-pending{color:var(--ink-faint)}.icon-in_progress{color:var(--blue);display:inline-block;animation:spin 1.6s linear infinite}.icon-completed{color:var(--green)}.icon-failed{color:var(--red)}.icon-blocked{color:var(--amber)}.icon-skipped{color:var(--ink-faint)}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.icon-in_progress{animation:none}}.milestone-main{flex:1;display:flex;flex-direction:column;gap:2px}.milestone-label{font-weight:600;font-size:14px}.milestone-provider{font-weight:400;font-size:11px;color:var(--ink-faint)}.milestone-status{font-size:12px;color:var(--ink-faint);white-space:nowrap}.text-completed{color:var(--green-dark)}.text-failed{color:var(--red)}.text-blocked{color:var(--amber)}.text-in_progress{color:var(--blue)}.milestone-sub{font-size:12px;color:var(--ink-soft)}.milestone-failure{color:var(--red)}.tracking-number{font-variant-numeric:tabular-nums;letter-spacing:.03em}.tracking-events{margin:4px 0 0;padding-left:16px}.terms{list-style:none;margin:0;padding:0}.term{border-bottom:1px solid var(--line)}.term:last-child{border-bottom:none}.term-row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;width:100%;background:none;border:none;padding:10px 2px;font:inherit;text-align:left;cursor:pointer}.term-label{color:var(--ink-soft);font-size:13px;white-space:nowrap}.term-value{font-weight:600;text-align:right}.chip{display:inline-block;margin-left:6px;font-size:11px;font-weight:600;padding:2px 8px;border-radius:999px;vertical-align:middle}.chip-confirm{background:#fef3c7;color:#b45309}.term-sources{padding:0 2px 10px}.term-quote{margin:6px 0;padding:8px 10px;border-left:3px solid var(--line);background:var(--bg);border-radius:0 8px 8px 0}.term-quote p{margin:0;font-size:13px;font-style:italic}.term-quote footer{margin-top:4px;font-size:11px;color:var(--ink-faint)}.term-source-empty{margin:6px 0;font-size:12px;color:var(--ink-faint)}.timeline{list-style:none;margin:0;padding:0 0 0 6px}.timeline-item{position:relative;padding:0 0 14px 18px;border-left:2px solid var(--line)}.timeline-item:last-child{padding-bottom:2px}.timeline-dot{position:absolute;left:-5px;top:4px;width:8px;height:8px;border-radius:50%;background:var(--ink-faint);border:2px solid var(--card)}.timeline-body{display:flex;flex-direction:column;gap:2px}.timeline-label{font-size:13px;font-weight:600}.timeline-meta{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--ink-faint)}.timeline-detail{font-size:11px;color:var(--ink-faint);word-break:break-word}.actor{padding:1px 7px;border-radius:999px;font-weight:600}.actor-party{background:#dbeafe;color:#1d4ed8}.actor-provider{background:#e0e7ff;color:#4338ca}.actor-agent{background:#dcfce7;color:#15803d}.actor-system{background:#f1f5f9;color:#475569}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a80;display:flex;align-items:flex-end;justify-content:center;z-index:50}.modal{background:var(--card);width:100%;max-width:420px;max-height:88vh;overflow-y:auto;border-radius:16px 16px 0 0;padding:16px}.modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.modal-title{margin:0;font-size:17px}.modal-close{background:none;border:none;font-size:15px;color:var(--ink-faint);cursor:pointer;padding:4px 8px}.modal-text{font-size:13px;color:var(--ink-soft);margin:0 0 12px}.modal-muted{color:var(--ink-faint)}.modal-actions{display:flex;flex-direction:column;gap:8px}.demo-banner{background:#fef3c7;color:#b45309;border:1px solid #fde68a;font-size:11px;font-weight:800;letter-spacing:.14em;text-align:center;padding:6px;border-radius:8px;margin-bottom:12px}.pay-amount{font-size:30px;font-weight:800;margin:0 0 8px;font-variant-numeric:tabular-nums}.pay-result{font-size:13px;padding:10px 12px;border-radius:10px;margin:0 0 12px}.pay-result-ok{background:#f0fdf4;border:1px solid #bbf7d0;color:var(--green-dark)}.pay-result-ko{background:#fef2f2;border:1px solid #fecaca;color:var(--red)}.issue-legs{display:flex;flex-direction:column;gap:8px}.agreement{border:1px solid var(--line);border-radius:10px;padding:14px;margin-bottom:12px;background:var(--bg)}.agreement-title{margin:0 0 2px;font-size:15px}.agreement-ref{margin:0 0 10px;font-size:11px;color:var(--ink-faint)}.agreement h4{margin:12px 0 4px;font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft)}.agreement p{margin:0;font-size:13px}.banner-error{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;background:#fef2f2;border:1px solid #fecaca;color:var(--red);border-radius:10px;padding:10px 12px;font-size:13px;margin-bottom:12px}.banner-close{background:none;border:none;color:inherit;cursor:pointer;font-size:12px;padding:0 2px}.page-message{margin-top:24px;text-align:center;padding:32px 20px}.page-message h1{font-size:18px;margin:0 0 8px}.page-message p{color:var(--ink-soft);font-size:14px;margin:0 0 16px}.invoice-line{font-size:14px;font-weight:600;margin:0 0 10px}.footer-link{margin-bottom:10px}.footer-note{text-align:center;font-size:11px;color:var(--ink-faint);margin:0 12px 16px}.audit-raw{background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:10px;font-size:11px;overflow-x:auto;margin:0 0 12px}
