@font-face{font-family:CodaMonoSans;src:url(/assets/CMMCodaKMCustom-MonoSans-DMLs1cib.woff) format("woff");font-weight:400;font-style:normal}@font-face{font-family:CodaProportional;src:url(/assets/CMMCodaKMCustom-Proportional-DHn2Uq_R.woff) format("woff");font-weight:400;font-style:normal}:root{--primary: #96a026;--ink: #1e293b;--muted: #64748b;--faint: #94a3b8;--line: #e2e8f0;--bg-soft: rgba(150, 160, 38, .05);--bg-pill: rgba(150, 160, 38, .15);--danger: #dc2626;--success: #16a34a;--warning: #d97706}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}[hidden]{display:none!important}::selection{background:var(--bg-pill);color:var(--ink)}::-moz-selection{background:var(--bg-pill);color:var(--ink)}body{font-family:system-ui,-apple-system,Segoe UI,sans-serif;color:var(--ink);background:#fff;line-height:1.5}code,kbd,samp,pre{font-family:CodaMonoSans,ui-monospace,monospace}.wrap{max-width:860px;margin:0 auto;padding:0 24px}.app-grid{display:grid;grid-template-columns:320px 1fr;gap:32px;max-width:1180px;margin:0 auto;padding:0 24px;align-items:start}.col-right{position:sticky;top:24px;max-height:calc(100vh - 48px);overflow-y:auto}.app-grid--wide{grid-template-columns:1fr;max-width:720px}.app-grid--wide .col-right{display:none}@media(max-width:780px){.app-grid{grid-template-columns:1fr;gap:0}.col-right{position:static;max-height:none;overflow-y:visible}}header.site{border-bottom:1px solid var(--line);padding:0}header.site .inner{display:flex;align-items:center;justify-content:space-between;padding:16px 24px}.header-right{display:flex;align-items:center;gap:12px}.brand{display:flex;align-items:center;gap:10px;font-weight:600;font-size:15px;text-decoration:none;color:var(--ink)}.brand .dot{width:14px;height:14px;border-radius:4px;background:var(--primary);flex-shrink:0}.brand-pill{background:var(--bg-pill);color:var(--ink);padding:3px 14px;border-radius:999px;font-size:13px;font-weight:500}.role-indicator{display:flex;align-items:center;gap:8px;font-size:12px}.role-pill{font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;padding:3px 9px;border-radius:999px}.role-pill--internal{background:#dcfce7;color:var(--success)}.role-pill--external{background:#f1f5f9;color:var(--muted)}.role-logout{font-size:12px;color:var(--muted);text-decoration:none;border-bottom:1px solid var(--line);line-height:1.2}.role-logout:hover{color:var(--ink);border-color:var(--ink)}.hero{padding:32px 0 8px}.hero h1{font-size:26px;font-weight:600;line-height:1.2}.hero h1 em{font-style:normal;color:var(--primary)}.hero p.lede{margin-top:10px;font-size:14px;color:var(--muted)}.btn-primary{display:inline-block;font:inherit;font-size:15px;font-weight:600;padding:11px 28px;border-radius:8px;border:none;background:var(--primary);color:#fff;cursor:pointer;transition:opacity .15s}.btn-primary:disabled{opacity:.4;cursor:not-allowed}.btn-primary:not(:disabled):hover{opacity:.88}.btn-ghost{font:inherit;font-size:13px;font-weight:500;padding:5px 12px;border-radius:6px;border:1px solid var(--line);background:#fff;color:var(--ink);cursor:pointer;transition:border-color .15s,background .15s}.btn-ghost:hover{border-color:var(--primary);background:var(--bg-soft)}.btn-ghost.active{border-color:var(--primary);background:var(--bg-pill);color:#5a6112}.btn-ghost--warn{color:var(--warning)}.btn-ghost--warn:hover{border-color:var(--warning);background:#fffbeb}.btn-download{font:inherit;font-size:14px;font-weight:600;padding:9px 22px;border-radius:8px;border:none;background:var(--primary);color:#fff;cursor:pointer;transition:opacity .15s}.btn-download:hover{opacity:.88}.btn-approve{font:inherit;font-size:14px;font-weight:600;padding:9px 22px;border-radius:8px;border:1.5px solid var(--success);background:#fff;color:var(--success);cursor:pointer;transition:background .15s,color .15s}.btn-approve:hover{background:#dcfce7}.btn-approve:disabled{opacity:.4;cursor:not-allowed}.btn-unpublish{font:inherit;font-size:14px;font-weight:600;padding:9px 22px;border-radius:8px;border:1.5px solid var(--line);background:#fff;color:var(--muted);cursor:pointer;transition:border-color .15s,color .15s,background .15s}.btn-unpublish:hover{border-color:var(--warning);color:var(--warning);background:#fffbeb}.btn-unpublish:disabled{opacity:.4;cursor:not-allowed}.btn-cancel{font:inherit;font-size:13px;font-weight:600;padding:5px 12px;border-radius:6px;border:1px solid #fca5a5;background:#fff;color:var(--danger);cursor:pointer;transition:background .15s}.btn-cancel:hover{background:#fee2e2}.btn-cancel:disabled{opacity:.4;cursor:not-allowed}.btn-dismiss{font-size:13px;line-height:1;padding:3px 6px;border:none;background:none;color:var(--faint);cursor:pointer;border-radius:4px}.btn-dismiss:hover{background:var(--line);color:var(--ink)}.form-row{display:flex;align-items:center;gap:12px}.form-row label{font-size:14px;font-weight:500;color:var(--ink);white-space:nowrap}.form-row select,.form-row input[type=text],.form-row input[type=email]{font:inherit;font-size:14px;padding:8px 12px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);outline:none;transition:border-color .15s}.form-row select{cursor:pointer}.form-row select:focus,.form-row input:focus{border-color:var(--primary)}.drop-zone{border:2px dashed var(--line);border-radius:12px;padding:32px 16px;text-align:center;cursor:pointer;transition:border-color .15s,background .15s;background:#fafafa}.drop-zone:hover,.drop-zone.drag-over,.drop-zone.has-file{border-color:var(--primary);background:var(--bg-soft)}.drop-icon{font-size:28px;margin-bottom:10px;color:var(--faint)}.drop-zone p{font-size:14px;color:var(--muted)}.browse-link{color:var(--primary);font-weight:600;cursor:pointer;text-decoration:underline;text-underline-offset:2px}.file-name{margin-top:8px;font-size:13px;font-weight:600;color:var(--primary)}.field-error{margin-top:8px;font-size:13px;color:var(--danger)}.badge{display:inline-block;font-size:12px;font-weight:700;padding:3px 10px;border-radius:999px;letter-spacing:.03em;text-transform:uppercase;flex-shrink:0}.badge-queued{background:#e0f2fe;color:#0369a1}.badge-running{background:var(--bg-pill);color:#5a6112}.badge-done{background:#dcfce7;color:var(--success)}.badge-failed{background:#fee2e2;color:var(--danger)}.badge-cancelled{background:#f1f5f9;color:var(--muted)}.badge-under_review{background:#fef3c7;color:#b45309}@keyframes sk-spin{to{transform:rotate(360deg)}}.spinner{display:inline-block;width:12px;height:12px;border:2px solid var(--bg-pill);border-top-color:var(--primary);border-radius:50%;animation:sk-spin .7s linear infinite;flex-shrink:0}.card{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff}.card-header{display:flex;align-items:center;gap:12px;padding:14px 20px;border-bottom:1px solid var(--line);background:#fafafa}.card-body{padding:20px}.card-footer{display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding:14px 20px;border-top:1px solid var(--line);background:#fafafa}.modal-overlay{position:fixed;inset:0;background:#0000008c;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-box{background:#fafafa;border-radius:12px;padding:24px;width:min(960px,94vw);max-height:90vh;display:flex;flex-direction:column;gap:12px;box-shadow:0 20px 60px #00000040;overflow:hidden}.modal-overlay--stacked{background:#000000b8;z-index:1100}.modal-box--stacked{width:min(1100px,94vw);height:85vh;box-shadow:0 24px 80px #00000073}.modal-header{display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.modal-title{font-size:15px;font-weight:600;font-family:CodaMonoSans,ui-monospace,monospace;color:var(--ink)}.modal-close{font-size:20px;line-height:1;border:none;background:none;color:var(--muted);cursor:pointer;padding:2px 6px;border-radius:4px}.modal-close:hover{background:var(--line)}.modal-body{flex:1;min-height:0;overflow-y:auto;border-radius:6px;border:1px solid var(--line);padding:16px 20px}.mono-output{font-family:CodaMonoSans,ui-monospace,monospace;font-size:12.5px;line-height:1.65;color:var(--ink);white-space:pre-wrap;word-break:break-all}.terminal{background:#0f172a;padding:16px 20px;border-radius:0}.terminal .mono-output{color:#94a3b8}.msg-warning{font-size:14px;color:var(--warning)}.msg-error{font-size:13px;color:var(--danger);font-family:ui-monospace,monospace}.msg-muted{font-size:14px;color:var(--muted)}
