:root{--bg:#f5f7fa;--surface:#fff;--border:#e3e8ef;--border-strong:#cbd5e1;--text:#1e293b;--text-muted:#64748b;--text-faint:#94a3b8;--primary:#2563eb;--primary-hover:#1d4ed8;--primary-soft:#eff6ff;--success:#16a34a;--success-soft:#f0fdf4;--success-text:#15803d;--danger:#dc2626;--danger-soft:#fef2f2;--warning-soft:#fefce8;--warning-text:#a16207;--radius:10px;--radius-sm:7px;--shadow-sm:0 1px 2px #0f172a0f;--shadow-md:0 4px 16px #0f172a14;--shadow-lg:0 20px 50px #0f172a38;--sans:"Segoe UI Variable", "Segoe UI", system-ui, Roboto, sans-serif;font:15px/1.55 var(--sans);color:var(--text);background:var(--bg);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{background:var(--bg);margin:0}#root{min-height:100svh}h1,h2,h3{color:var(--text);letter-spacing:-.02em;margin:0;font-weight:650}p{margin:.35rem 0}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}button{font-family:var(--sans)}:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:4px}::selection{background:var(--primary-soft)}.page{max-width:1480px;margin:0 auto;padding:0 1.5rem 3rem}.error{color:var(--danger);background:var(--danger-soft);border-radius:var(--radius-sm);border:1px solid #fecaca;padding:.5rem .85rem;display:inline-block}.app-header{z-index:40;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border);background:#f5f7fad9;flex-wrap:wrap;align-items:center;gap:1.25rem;margin-bottom:1.25rem;padding:.9rem 0 .75rem;display:flex;position:sticky;top:0}.app-header h1{color:var(--primary);font-size:1.35rem}.tabs{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-sm);border-radius:999px;gap:.25rem;padding:.25rem;display:flex}.tab{font:inherit;white-space:nowrap;cursor:pointer;color:var(--text-muted);background:0 0;border:none;border-radius:999px;padding:.36rem .85rem;font-size:.9rem;transition:background .15s,color .15s}.tab:hover{color:var(--text);background:var(--bg)}.tab-active,.tab-active:hover{background:var(--primary);color:#fff;font-weight:550}.user-box{white-space:nowrap;align-items:center;gap:.85rem;margin-left:auto;font-size:.92rem;display:flex}.login-screen{text-align:center;flex-direction:column;align-items:center;gap:.75rem;margin-top:18vh;display:flex}.login-screen h1{color:var(--primary);font-size:2.6rem}.login-screen p{color:var(--text-muted);margin-bottom:1rem}.primary-btn,.secondary-btn,.approve-btn,.reject-btn,.preview-btn{font:inherit;border-radius:var(--radius-sm);cursor:pointer;border:1px solid #0000;padding:.42rem 1rem;font-size:.92rem;transition:background .15s,border-color .15s,box-shadow .15s}.primary-btn{background:var(--primary);color:#fff;box-shadow:var(--shadow-sm)}.primary-btn:hover{background:var(--primary-hover)}.secondary-btn{background:var(--surface);border-color:var(--border-strong);color:var(--text)}.secondary-btn:hover{background:var(--bg)}.approve-btn{background:var(--success);color:#fff}.approve-btn:hover{filter:brightness(1.08)}.reject-btn{background:var(--surface);color:var(--danger);border-color:#fca5a5}.reject-btn:hover{background:var(--danger-soft)}.preview-btn{background:var(--surface);border-color:var(--border-strong);color:var(--text);padding:.32rem .8rem}.preview-btn:hover{border-color:var(--primary);color:var(--primary)}.file-link{font:inherit;color:var(--primary);cursor:pointer;white-space:nowrap;background:0 0;border:none;padding:0;font-size:.88rem}.file-link:hover{text-decoration:underline}.file-row{flex-wrap:wrap;align-items:baseline;gap:.25rem 1rem;margin:.45rem 0 .1rem;font-size:.88rem;display:flex}.primary-btn:disabled,.approve-btn:disabled,.reject-btn:disabled,.preview-btn:disabled{opacity:.55;cursor:not-allowed}.toolbar{flex-wrap:wrap;align-items:center;gap:.65rem;margin-bottom:.9rem;display:flex}.toolbar label{color:var(--text-muted);font-size:.92rem}select,input[type=text]{font:inherit;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);padding:.4rem .65rem;font-size:.92rem}select:hover{border-color:var(--text-faint)}.breadcrumbs{color:var(--text-faint);margin-bottom:1rem;font-size:.95rem}.crumb,.folder-link{font:inherit;color:var(--primary);cursor:pointer;background:0 0;border:none;padding:0}.crumb:hover,.folder-link:hover{text-decoration:underline}.folder-link{text-align:left;font-weight:550}.documents-table{border-collapse:separate;border-spacing:0;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:100%;box-shadow:var(--shadow-sm);overflow:hidden}.documents-table th{text-align:left;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);border-bottom:1px solid var(--border);background:#f8fafc;padding:.6rem .9rem;font-size:.78rem;font-weight:600}.documents-table td{text-align:left;border-bottom:1px solid var(--border);vertical-align:middle;padding:.55rem .9rem}.documents-table tbody tr:last-child td{border-bottom:none}.documents-table tbody tr{transition:background .1s}.documents-table tbody tr:hover{background:#f8fafc}.actions{white-space:nowrap;text-align:right}.actions .preview-btn{margin-right:.6rem}.badge{white-space:nowrap;border-radius:999px;align-items:center;gap:.35rem;padding:.12rem .6rem;font-size:.82rem;font-weight:550;display:inline-flex}.badge:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px}.badge-in_progress{background:var(--warning-soft);color:var(--warning-text);border:1px solid #fde68a}.badge-approved,.badge-step-approved{background:var(--success-soft);color:var(--success-text);border:1px solid #bbf7d0}.badge-rejected,.badge-step-rejected{background:var(--danger-soft);color:var(--danger);border:1px solid #fecaca}.badge-step-pending,.badge-cancelled{color:var(--text-muted);border:1px solid var(--border);background:#f1f5f9}.approval-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);margin-bottom:1.1rem;padding:1rem 1.2rem;transition:box-shadow .15s}.approval-meta{color:var(--text-muted);margin:.25rem 0 .4rem;font-size:.85rem}.approval-card:hover{box-shadow:var(--shadow-md)}.approval-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.approval-head strong{font-size:1.02rem}.approval-title{min-width:0}.head-contract{color:var(--primary);white-space:nowrap;font-weight:600}h2{margin:1.6rem 0 .8rem;font-size:1.15rem}.muted{color:var(--text-muted);font-size:.88rem}.steps-history{margin:.6rem 0 .2rem;padding-left:1.4rem}.steps-history li{margin:.3rem 0}.round-header{color:var(--text);margin:.7rem 0 .1rem;font-size:.9rem;font-weight:650}.decision-row{flex-wrap:wrap;align-items:center;gap:.7rem;margin-top:.7rem;display:flex}.comment-input{flex:1;min-width:220px}.modal-overlay{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:100;background:#0f172a80;justify-content:center;align-items:center;animation:.15s ease-out fade-in;display:flex;position:fixed;inset:0}.modal{background:var(--surface);width:min(1100px,95vw);height:min(850px,92vh);box-shadow:var(--shadow-lg);border-radius:14px;flex-direction:column;animation:.18s ease-out slide-up;display:flex;overflow:hidden}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes slide-up{0%{opacity:.6;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.modal-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:1rem;padding:.75rem 1.2rem;display:flex}.modal-title{text-overflow:ellipsis;white-space:nowrap;font-weight:650;overflow:hidden}.modal-close{font:inherit;cursor:pointer;color:var(--text-muted);border-radius:var(--radius-sm);background:0 0;border:none;padding:.25rem .5rem;font-size:.9rem}.modal-close:hover{color:var(--text);background:var(--bg)}.modal-frame{background:#f1f5f9;border:none;flex:1;width:100%}.dialog{width:min(580px,92vw);height:auto;max-height:88vh}.review-modal{width:min(1350px,96vw);height:min(880px,94vh)}.review-body{flex:1;min-height:0;display:flex}.review-body .modal-frame{flex:1;min-width:0}.review-sidebar{border-left:1px solid var(--border);background:#fafbfc;flex-direction:column;flex-shrink:0;gap:.6rem;width:440px;padding:1rem 1.1rem;display:flex;overflow-y:auto}.review-actions{border-top:1px solid var(--border);flex-direction:column;gap:.55rem;margin-top:auto;padding-top:.75rem;display:flex}.review-comment{font:inherit;border:1px solid var(--border-strong);border-radius:var(--radius-sm);resize:vertical;background:var(--surface);min-height:80px;padding:.5rem .65rem;font-size:.92rem}@media (width<=900px){.review-body{flex-direction:column}.review-sidebar{border-left:none;border-top:1px solid var(--border);width:100%;max-height:45%}}.dialog-body{padding:1.2rem;overflow-y:auto}.dialog-body input[type=text]{min-width:260px}.dialog-footer{border-top:1px solid var(--border);background:#fafbfc;gap:.75rem;padding:.9rem 1.2rem;display:flex}.route-preview{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);margin-top:.9rem;padding:.75rem 1rem}.route-preview>p:first-child{margin-top:0;font-weight:600}.route-preview label{cursor:pointer;line-height:1.9}.user-picker{min-width:340px;display:inline-block;position:relative}.user-picker input{width:100%}.user-picker-dropdown{z-index:200;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-md);max-height:280px;margin:4px 0 0;padding:.25rem;list-style:none;position:fixed;overflow-y:auto}.user-picker-dropdown li{margin:0}.user-picker-dropdown button{text-align:left;width:100%;font:inherit;border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:none;padding:.5rem .7rem;font-size:.92rem;display:block}.user-picker-dropdown button:hover{background:var(--primary-soft)}.user-picker-note{color:var(--text-muted);padding:.5rem .7rem;font-size:.9rem}.selected-user{background:var(--primary-soft);border-radius:var(--radius-sm);border:1px solid #bfdbfe;padding:.4rem .75rem}.contract-form{flex-direction:column;gap:.75rem;display:flex}.contract-form label{color:var(--text-muted);flex-direction:column;gap:.25rem;font-size:.9rem;display:flex}.contract-form input[type=date]{font:inherit;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);padding:.35rem .6rem;font-size:.92rem}.contract-form .date-row{gap:1rem;display:flex}.contract-form input[type=text],.contract-form select{box-sizing:border-box;width:100%}.days-input{width:80px;font:inherit;border:1px solid var(--border-strong);border-radius:var(--radius-sm);text-align:center;padding:.35rem .55rem;font-size:.92rem}.form-section-title{color:var(--text);margin:.5rem 0 .1rem;font-weight:600}.contract-form .user-picker{width:100%;min-width:0}.contract-form .checkbox-label{color:var(--text);flex-direction:row;align-items:center;gap:.5rem}.row-expired td{background:var(--danger-soft)}.row-expired .badge{margin-left:.5rem}.home-grid{grid-template-columns:1fr 1fr;gap:1rem;margin-top:1rem;display:grid}@media (width<=900px){.home-grid{grid-template-columns:1fr}}.home-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:1.1rem 1.25rem}.home-card-head{align-items:center;gap:.6rem;margin-bottom:.75rem;display:flex}.home-card-head h3{font-size:1.05rem}.counter-badge{background:var(--primary);color:#fff;border-radius:999px;padding:.05rem .55rem;font-size:.8rem;font-weight:600}.home-item{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:1rem;padding:.6rem 0;display:flex}.home-item>div:first-child{flex:1;min-width:0}.home-item:first-of-type{border-top:none}.home-card .secondary-btn{margin-top:.75rem}.home-item-done{opacity:.85}.home-grid .lawyer-card{grid-column:1/-1}.home-item-right{flex-shrink:0;align-items:center;gap:.4rem;display:flex}.dismiss-btn{color:var(--text-faint);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;padding:.2rem .45rem;font-size:.95rem}.dismiss-btn:hover{color:var(--danger);background:var(--danger-soft)}.remarks-editor{flex-direction:column;gap:.4rem;margin-top:.6rem;display:flex}.remark-row{align-items:center;gap:.4rem;display:flex}.remark-block{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);flex-direction:column;gap:.4rem;padding:.5rem .6rem;display:flex}.remark-block-head{justify-content:space-between;align-items:center;gap:.4rem;display:flex}.remark-clause{flex-shrink:0;width:150px}.remark-comment-area{width:100%;font:inherit;border:1px solid var(--border-strong);border-radius:var(--radius-sm);resize:vertical;box-sizing:border-box;min-height:64px;padding:.45rem .6rem;font-size:.92rem}.remark-comment{flex:1;min-width:0}.remark-remove{color:var(--text-faint);cursor:pointer;background:0 0;border:none;padding:.2rem .4rem;font-size:.9rem}.remark-remove:hover{color:var(--danger)}.remark-add{align-self:flex-start;padding:.25rem .7rem;font-size:.85rem}.remarks-list{margin:.25rem 0;padding-left:1.3rem;font-size:.9rem}.remarks-list li{margin:.15rem 0}.remark-field-label{color:var(--text-muted);margin-top:.1rem;font-size:.8rem;font-weight:600}.remark-comment-small{min-height:36px}.remark-wordings{border-left:2px solid var(--border);flex-direction:column;gap:.15rem;margin:.2rem 0 .35rem;padding-left:.75rem;font-size:.9rem;display:flex}.lawyer-card{border-left:3px solid var(--primary)}.lawyer-remarks{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);margin-top:.5rem;padding:.6rem .9rem}.remark-author{white-space:nowrap;font-size:.85rem}.lawyer-remarks-history{border-top:1px dashed var(--border);margin-top:.5rem;padding-top:.4rem}.new-doc-hint{background:var(--bg);border:1px solid var(--primary);border-radius:var(--radius-sm);justify-content:space-between;align-items:center;gap:.75rem;margin:.5rem 0;padding:.55rem .9rem;font-size:.92rem;display:flex}.new-doc-hint button{flex-shrink:0}.picker-dialog{height:min(760px,88vh)}.picker-toolbar{align-items:center;gap:.5rem;margin-bottom:.5rem;display:flex}.picker-search{box-sizing:border-box;flex:1;min-width:0}.counterparty-round-info{border-left:2px solid #d97706;margin:.15rem 0 .35rem 1.3rem;padding-left:.55rem;font-size:.88rem}.lawyer-round-info{border-left:2px solid var(--primary);margin:.15rem 0 .45rem 1.3rem;padding-left:.55rem;font-size:.88rem}.remarks-collapse{margin-left:.3rem;display:inline-block}.remarks-collapse>summary{cursor:pointer;-webkit-user-select:none;user-select:none;color:var(--primary);font-size:.85rem}.remarks-collapse[open]{margin-left:0;display:block}.steps-collapse{border-left:2px solid var(--border);margin:.5rem 0;padding:.1rem 0 .1rem .85rem}.steps-collapse summary{cursor:pointer;-webkit-user-select:none;user-select:none;font-size:.85rem}.steps-collapse[open] summary{margin-bottom:.25rem}.steps-collapse .steps-history{margin:.2rem 0}.awaiting-card{border-left:3px solid var(--primary)}.section-collapse{margin-top:1.1rem}.section-collapse>summary{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:.4rem;display:flex}.section-collapse>summary:before{content:"▸";color:var(--text-muted);font-size:.9rem;transition:transform .15s}.section-collapse[open]>summary:before{transform:rotate(90deg)}.section-collapse>summary::-webkit-details-marker{content:"";display:none}.section-collapse>summary::marker{content:"";display:none}.section-collapse>summary h2{align-items:center;gap:.4rem;margin:0;display:inline-flex}.lawyer-work{background:var(--bg);border:1px solid var(--primary);border-radius:var(--radius-sm);margin-top:.75rem;padding:.6rem .9rem .75rem}.lawyer-work-title{text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted);margin:0 0 .45rem;font-size:.85rem;font-weight:600}.lawyer-work .decision-row{margin-top:.4rem}.lawyer-note-full{width:100%;min-height:52px;margin-top:.45rem}.response-mismatch{color:#b45309;font-size:.85rem}.push-right{margin-left:auto}details.lawyer-remarks>summary{cursor:pointer;-webkit-user-select:none;user-select:none;margin:0}details.lawyer-remarks[open]>summary{margin-bottom:.4rem}.lawyer-remarks-history summary{cursor:pointer;font-size:.85rem}.preview-placeholder{color:var(--text-muted);justify-content:center;align-items:center;display:flex}.actions-menu{z-index:200;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-md);margin:0;padding:.25rem;list-style:none;position:fixed}.actions-menu li{margin:0}.actions-menu button{text-align:left;width:100%;font:inherit;border-radius:var(--radius-sm);cursor:pointer;color:var(--text);background:0 0;border:none;padding:.45rem .7rem;font-size:.92rem;display:block}.actions-menu button:hover{background:var(--primary-soft);color:var(--primary)}.history-dialog{width:min(760px,94vw)}.category-header{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;margin:1.4rem 0 .6rem;font-size:.95rem}.badge-link{cursor:pointer;font:inherit;font-size:.82rem}.versions-row{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:1rem;padding-bottom:.75rem;display:flex}.history-timeline{margin:0;padding:0;list-style:none}.history-timeline>li{border-left:2px solid var(--border);margin-left:.4rem;padding:.55rem 0 .55rem 1.4rem;position:relative}.history-timeline>li:before{content:"";background:var(--primary);border:2px solid var(--surface);border-radius:50%;width:10px;height:10px;position:absolute;top:1.05rem;left:-6px}.history-head{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.history-changes{margin:.3rem 0 0;padding-left:1.2rem;font-size:.92rem}.history-old{color:var(--text-faint);text-decoration:line-through}.filter-bar{background:var(--surface);border:1px solid var(--border);max-width:100%;box-shadow:var(--shadow-sm);border-radius:999px;flex-wrap:wrap;align-items:center;gap:.7rem;margin-bottom:.5rem;padding:.45rem 1.1rem;display:flex}.filter-icon{font-size:1rem}.filter-label{color:var(--text-muted);white-space:nowrap;font-size:.88rem;font-weight:600}.filter-dates{align-items:center;gap:.45rem;display:flex}.filter-dates input[type=date]{font:inherit;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);color:var(--text);padding:.28rem .55rem;font-size:.9rem;transition:border-color .15s,background .15s}.filter-dates input[type=date]:hover{border-color:var(--border-strong)}.filter-dates input[type=date]:focus{background:var(--surface);border-color:var(--primary);outline:none}.filter-dash{color:var(--text-faint)}.filter-reset{font:inherit;background:var(--danger-soft);color:var(--danger);cursor:pointer;border:none;border-radius:999px;padding:.28rem .75rem;font-size:.85rem;transition:filter .15s}.filter-reset:hover{filter:brightness(.96)}.filter-search{font:inherit;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);min-width:280px;padding:.28rem .6rem;font-size:.9rem}.filter-search:focus{background:var(--surface);border-color:var(--primary);outline:none}.filter-presets{gap:.25rem;display:inline-flex}.preset-btn{font:inherit;border:1px solid var(--border);background:var(--bg);color:var(--text-muted);cursor:pointer;white-space:nowrap;border-radius:999px;padding:.22rem .6rem;font-size:.82rem}.preset-btn:hover{border-color:var(--border-strong);color:var(--text)}.preset-active,.preset-active:hover{background:var(--primary);border-color:var(--primary);color:#fff}.load-more{margin:.25rem 0 1rem;display:block}.badge-link:hover{filter:brightness(.95);text-decoration:underline}.access-list{border:1px solid var(--border);border-radius:var(--radius-sm);flex-direction:column;gap:.3rem;max-height:220px;padding:.6rem .8rem;display:flex;overflow-y:auto}@media (width<=720px){.app-header{gap:.75rem}.user-box{margin-left:0}.documents-table th:nth-child(2),.documents-table td:nth-child(2),.documents-table th:nth-child(4),.documents-table td:nth-child(4){display:none}.user-picker{min-width:240px}}
