:root{--teal:#2d9198;--teal-hover:#237278;--teal-deep:#1e6c71;--teal-deeper:#1d5f64;--teal-tint:#e6f3f4;--teal-tint-2:#cfe8ea;--amber:#f2a33c;--amber-tint:#fdf1df;--amber-text:#9a5f0e;--red-tint:#fbe9e8;--red-text:#a93a33;--overdue:#d6453d;--ink:#1f2a2b;--ink-2:#3e4548;--grey:#a6a8ab;--grey-2:#6b6f73;--grey-3:#c4c6c8;--grey-4:#5c5f63;--bg:#f6f5f2;--surface:#fff;--surface-2:#fafaf8;--line:#e6e4df;--line-2:#f0efec;--font-display:"Inter Tight", system-ui, sans-serif;--font-body:"IBM Plex Sans", system-ui, sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, monospace;--topbar-height:56px;--sidebar-width:220px}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);font-family:var(--font-body);color:var(--ink);-webkit-font-smoothing:antialiased;font-size:13px;line-height:1.4}button,input,select,textarea{font-family:inherit}input::placeholder{color:#bdbfc1}a{color:var(--teal);text-decoration:none}a:hover{color:var(--teal-hover);text-decoration:underline}.shell{background:var(--bg);flex-direction:column;min-width:1200px;height:100vh;display:flex}.topbar{height:var(--topbar-height);background:var(--surface);border-bottom:1px solid var(--line);flex:none;justify-content:space-between;align-items:center;padding:0 24px 0 20px;display:flex}.topbar-brand{align-items:center;gap:14px;display:flex}.topbar-app{border-left:1px solid var(--line);color:var(--grey-2);letter-spacing:.08em;padding-left:14px;font-size:11px;font-weight:500}.shell-body{flex:1;min-height:0;display:flex}.sidebar{width:var(--sidebar-width);background:var(--surface);border-right:1px solid var(--line);flex-direction:column;flex:none;gap:2px;padding:16px 12px;display:flex}.sidebar-heading{letter-spacing:.12em;color:var(--grey);padding:4px 10px 8px;font-size:10.5px;font-weight:600}.module{height:36px;color:var(--grey);cursor:default;-webkit-user-select:none;user-select:none;border-radius:6px;justify-content:space-between;align-items:center;padding:0 10px;font-weight:400;text-decoration:none;display:flex}.module:hover{text-decoration:none}.module.is-active{background:var(--teal-tint);color:var(--teal-hover);cursor:pointer;font-weight:600}.module-name{align-items:center;gap:10px;display:flex}.module-dot{background:#dddcd8;border-radius:50%;width:6px;height:6px}.module.is-active .module-dot{background:var(--teal)}.module-soon{color:var(--grey-3);letter-spacing:.06em;font-size:10px}.sidebar-note{color:var(--grey);margin-top:auto;padding:12px 10px;font-size:11px;line-height:1.5}.main{flex-direction:column;flex:1;min-width:0;display:flex}.module-header{background:var(--surface);border-bottom:1px solid var(--line);flex:none;padding:18px 28px 0}.module-title-row{align-items:baseline;gap:12px;margin-bottom:14px;display:flex}.module-title{font-family:var(--font-display);letter-spacing:-.02em;color:var(--teal-deep);margin:0;font-size:22px;font-weight:600}.module-subtitle{color:var(--grey);font-size:12px}.tabs{gap:4px;display:flex}.tab{color:var(--grey-2);-webkit-user-select:none;user-select:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:8px 14px 11px;font-size:13px;font-weight:500;text-decoration:none}.tab:hover{color:var(--teal);text-decoration:none}.tab.is-active{color:var(--teal);border-bottom-color:var(--teal)}.content{flex:1;min-height:0;padding:22px 28px 32px;overflow:auto}.account{position:relative}.account-button{cursor:pointer;height:40px;color:inherit;text-align:right;background:0 0;border:0;border-radius:8px;align-items:center;gap:12px;padding:0 4px 0 10px;line-height:1.25;display:flex}.account-button:hover,.account-button[aria-expanded=true]{background:var(--bg)}.account-name{font-size:13px;font-weight:500}.account-role{color:var(--grey);font-size:11px}.avatar{background:var(--amber);width:32px;height:32px;color:var(--teal-deep);font-family:var(--font-display);border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:12px;font-weight:600;display:flex}.account-menu{background:var(--surface);border:1px solid var(--line);z-index:20;border-radius:8px;width:260px;padding:6px;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 8px 24px #1f2a2b1f}.account-menu-head{border-bottom:1px solid var(--line-2);margin-bottom:6px;padding:10px 10px 12px}.account-menu-name{font-size:13px;font-weight:500}.account-menu-email{color:var(--grey-2);text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:12px;overflow:hidden}.account-menu-note{color:var(--grey);margin-top:6px;font-size:11px;line-height:1.45}.account-menu-item{text-align:left;width:100%;height:34px;color:var(--ink);cursor:pointer;background:0 0;border:0;border-radius:6px;padding:0 10px;font-size:13px;font-weight:500;display:block}.account-menu-item:hover{background:var(--bg)}.account-menu-item:disabled{color:var(--grey);cursor:default}.login-page{background:var(--bg);justify-content:center;align-items:center;min-height:100vh;padding:40px 24px;display:flex}.login-card{background:var(--surface);border:1px solid var(--line);border-radius:12px;flex-direction:column;gap:14px;width:400px;padding:36px 40px 30px;display:flex}.login-brand{justify-content:center;padding:0 0 14px;display:flex}.field-label{font:500 12px/1 var(--font-body);color:var(--grey-2);margin-bottom:7px;display:block}.field-input{border:1px solid var(--line);background:var(--surface);width:100%;height:44px;font:400 14px/1 var(--font-body);color:var(--ink);border-radius:8px;outline:none;padding:0 12px}.field-input:focus{border-color:var(--teal);box-shadow:0 0 0 3px var(--teal-tint)}.field-input.is-error{border-color:var(--red-text)}.field-error{font:500 12.5px/1.5 var(--font-body);color:var(--red-text);align-items:flex-start;gap:8px;padding:2px 2px 0;display:flex}.show-toggle{height:32px;color:var(--teal);font:600 12.5px/1 var(--font-body);cursor:pointer;background:0 0;border:0;border-radius:6px;padding:0 10px;position:absolute;top:6px;right:6px}.remember{border:1px solid var(--line);background:var(--surface);cursor:pointer;text-align:left;width:100%;color:var(--ink);border-radius:8px;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.remember.is-on{border-color:var(--teal-tint-2);background:#f4f9f9}.switch{background:var(--grey-3);border-radius:11px;flex:none;width:38px;height:22px;transition:background .15s;position:relative}.switch.is-on{background:var(--teal)}.switch-knob{background:#fff;border-radius:50%;width:18px;height:18px;transition:left .15s;position:absolute;top:2px;left:2px}.switch.is-on .switch-knob{left:18px}.btn-primary{background:var(--teal);color:#fff;height:44px;font:500 14px/1 var(--font-body);cursor:pointer;border:0;border-radius:8px;justify-content:center;align-items:center;gap:10px;padding:0 16px;display:flex}.btn-primary:hover{background:var(--teal-hover)}.btn-primary:disabled{opacity:.7;cursor:default}.spinner{border:2px solid #fff6;border-top-color:#fff;border-radius:50%;width:14px;height:14px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.login-foot{text-align:center;font:400 12px/1.6 var(--font-body);color:var(--grey);margin-top:8px}.loading{height:100vh;font:500 11px/1 var(--font-body);letter-spacing:.06em;color:var(--grey);justify-content:center;align-items:center;display:flex}.panel{background:var(--surface);border:1px solid var(--line);border-radius:8px;overflow:hidden}.empty{text-align:center;color:var(--grey);padding:36px}.pill{white-space:nowrap;border-radius:999px;font-weight:500;line-height:1.4;display:inline-block}.tag{letter-spacing:.06em;border-radius:3px;padding:1px 6px;font-size:10px;font-weight:600}.tag-teal{background:var(--teal-tint);color:var(--teal-hover)}.tag-amber{background:var(--amber-tint);color:var(--amber-text)}.tiles{background:var(--line);border:1px solid var(--line);border-radius:8px;gap:1px;margin-bottom:18px;display:flex;overflow:hidden}.tile{background:var(--surface);text-align:left;cursor:pointer;min-width:0;color:inherit;border:0;flex:1;padding:12px 14px;font-family:inherit}.tile:hover{background:var(--surface-2)}.tile.is-active{background:var(--teal-tint)}.tile-total{flex:1.2;padding:12px 16px}.tile-label{color:var(--grey);letter-spacing:.04em;white-space:nowrap;text-overflow:ellipsis;font-size:11px;font-weight:500;overflow:hidden}.tile-figure{margin-top:2px;font-size:20px;font-weight:600;line-height:1.2}.tile-amber{background:var(--amber-tint)}.tile-amber .tile-label,.tile-amber .tile-figure{color:var(--amber-text)}.filters{align-items:center;gap:10px;margin-bottom:12px;display:flex}.filter-input{border:1px solid var(--line);background:var(--surface);max-width:360px;height:34px;color:var(--ink);border-radius:6px;outline:none;flex:1;padding:0 12px;font-size:13px}.filter-input:focus{border-color:var(--teal)}.filter-select{border:1px solid var(--line);background:var(--surface);height:34px;color:var(--ink);border-radius:6px;padding:0 10px;font-size:13px}.filter-count{color:var(--grey);margin-left:auto;font-size:12px}.table{border-collapse:collapse;width:100%;font-size:13px}.table thead tr{background:var(--surface-2);color:var(--grey-2);letter-spacing:.04em;text-transform:uppercase;font-size:11px}.table th{text-align:left;border-bottom:1px solid var(--line);padding:10px 14px;font-weight:500}.table th.num,.table td.num{text-align:right}.table td{vertical-align:top;border-bottom:1px solid var(--line-2);padding:10px 14px}.table tbody tr:last-child td{border-bottom:0}.row-link{cursor:pointer}.row-link:hover{background:var(--bg)}.row-link.is-selected{background:var(--teal-tint);box-shadow:inset 3px 0 0 var(--teal)}.mono{font-family:var(--font-mono)}.quiet{color:var(--grey)}.quiet-sm{color:var(--grey-2);font-size:12px}.quiet-xs{color:var(--grey);font-size:11.5px}.eyebrow{color:var(--grey);margin-bottom:4px;font-size:11px}.panel-overlay{z-index:30;background:#1f2a2b2e;position:fixed;inset:0}.site-panel{background:var(--surface);z-index:31;flex-direction:column;width:500px;font-size:13px;display:flex;position:fixed;top:0;bottom:0;right:0;box-shadow:-8px 0 32px #1f2a2b1f}.site-panel-head{border-bottom:1px solid var(--line);flex:none;padding:18px 24px 14px}.site-panel-title{font-family:var(--font-display);letter-spacing:-.01em;margin:0;font-size:18px;font-weight:600;line-height:1.3}.icon-button{width:28px;height:28px;color:var(--grey-2);cursor:pointer;background:0 0;border:0;border-radius:6px;flex:none;font-size:18px;line-height:1}.icon-button:hover{background:var(--bg)}.readonly-chip{color:var(--grey);border:1px solid var(--line);border-radius:4px;margin-left:auto;padding:2px 6px;font-size:11px}.site-panel-body{flex-direction:column;flex:1;gap:22px;padding:18px 24px 28px;display:flex;overflow:auto}.section-label{letter-spacing:.08em;color:var(--grey);margin-bottom:8px;font-size:11px;font-weight:600}.two-col{grid-template-columns:1fr 1fr;gap:16px;display:grid}.contact-row{background:var(--surface-2);border-radius:6px;justify-content:space-between;gap:12px;padding:10px 12px;display:flex}.visit-row{border-top:1px solid var(--line-2);grid-template-columns:86px 1fr auto;gap:10px;padding:10px 0;display:grid}.agreement-row{border:1px solid var(--line);border-radius:6px;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.site-panel-foot{color:var(--grey);border-top:1px solid var(--line-2);padding-top:12px;font-size:11.5px;line-height:1.5}.table-fixed{table-layout:fixed}.table .clip{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.stage-help{vertical-align:middle;text-transform:none;letter-spacing:0;margin-left:6px;display:inline-block;position:relative}.info-button{width:18px;height:18px;color:var(--grey);cursor:pointer;vertical-align:middle;background:0 0;border:0;border-radius:50%;justify-content:center;align-items:center;padding:0;display:inline-flex}.info-button:hover,.info-button[aria-expanded=true]{color:var(--teal);background:var(--teal-tint)}.stage-legend{background:var(--surface);border:1px solid var(--line);z-index:25;width:360px;color:var(--ink);text-transform:none;letter-spacing:0;cursor:default;border-radius:8px;padding:10px 12px 6px;font-size:12.5px;font-weight:400;position:fixed;box-shadow:0 8px 24px #1f2a2b1f}.stage-legend-title{letter-spacing:.06em;color:var(--grey);text-transform:uppercase;margin-bottom:6px;font-size:11px;font-weight:600}.stage-legend-row{border-top:1px solid var(--line-2);grid-template-columns:104px 1fr;align-items:start;gap:10px;padding:6px 0;display:grid}.stage-legend-text{color:var(--ink-2);line-height:1.45}.review-grid{grid-template-columns:minmax(360px,1fr) minmax(0,1.5fr);align-items:start;gap:16px;display:grid}.review-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:12px;padding:16px 20px 14px;display:flex}.review-title{font-family:var(--font-display);letter-spacing:-.01em;font-size:17px;font-weight:600}.review-note{background:var(--surface-2);border-bottom:1px solid var(--line);padding:14px 20px;font-size:12.5px;line-height:1.5}.compare{grid-template-columns:120px 1fr 1fr;font-size:13px;display:grid}.compare-row{display:contents}.compare-head{border-bottom:1px solid var(--line);background:var(--surface-2);letter-spacing:.04em;text-transform:uppercase;color:var(--grey-2);justify-content:space-between;align-items:center;gap:8px;padding:10px 16px;font-size:11px;font-weight:600;display:flex}.compare-label{border-bottom:1px solid var(--line-2);color:var(--grey);padding:9px 20px;font-size:11.5px;font-weight:500}.compare-cell{border-bottom:1px solid var(--line-2);color:var(--ink);overflow-wrap:anywhere;padding:9px 16px}.compare-cell.is-hit{background:var(--amber-tint);color:var(--amber-text);font-weight:500}.btn{background:var(--surface);height:34px;color:var(--ink);font:500 13px/1 var(--font-body);cursor:pointer;-webkit-user-select:none;user-select:none;border:0;border-radius:6px;align-items:center;padding:0 14px;display:inline-flex}.btn:disabled{cursor:not-allowed;color:var(--grey-3)}.btn-teal{background:var(--teal);color:#fff}.btn-teal:hover{background:var(--teal-hover)}.btn-outline{border:1px solid var(--line);color:var(--teal-deep)}.btn-outline:hover:not(:disabled){background:var(--bg)}.btn-danger{color:var(--red-text)}.btn-danger:hover:not(:disabled){background:var(--red-tint)}.confirm-box{border:1px solid var(--line);background:var(--surface-2);border-radius:8px;padding:14px 16px}.outcome{align-items:center;gap:12px;padding:14px 20px;display:flex}.link-button{color:var(--teal);font:500 12px/1 var(--font-body);cursor:pointer;text-transform:none;letter-spacing:0;background:0 0;border:0;padding:0}.link-button:hover{text-decoration:underline}
