:root{--ink: #000;--paper: #fff;--mid: #a0a0a0;--line: #e4e4e4;--soft: #f6f6f6}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:14px;line-height:1.45}.app{max-width:1280px;margin:0 auto;padding:32px 24px 96px}h1{font-size:22px;font-weight:500;letter-spacing:.02em;text-transform:lowercase;margin:0 0 4px}.subtitle{color:var(--mid);margin:0 0 32px;text-transform:lowercase}h2{font-size:12px;font-weight:500;letter-spacing:.14em;text-transform:lowercase;color:var(--mid);border-bottom:1px solid var(--ink);padding-bottom:6px;margin:40px 0 16px}.metrics{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:1px;background:var(--line);border:1px solid var(--line)}.metric{background:var(--paper);padding:14px 12px}.metric .value{font-size:26px;font-weight:500}.metric .label{font-size:11px;color:var(--mid);text-transform:lowercase;letter-spacing:.05em}.metric.alert .value{color:#b00000}.breakdowns{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:32px}.breakdown table{width:100%;border-collapse:collapse}.breakdown td{padding:5px 0;border-bottom:1px solid var(--line)}.breakdown td:last-child{text-align:right;font-variant-numeric:tabular-nums}.breakdown tr.clickable{cursor:pointer}.breakdown tr.clickable:hover td{background:var(--soft)}.filters{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center;margin-bottom:16px}.filters select,.filters input[type=search]{font:inherit;border:1px solid var(--ink);background:var(--paper);padding:6px 8px;border-radius:0}.filters input[type=search]{min-width:220px}.filters label.check{display:inline-flex;gap:6px;align-items:center;color:var(--ink);cursor:pointer}.filters .count{margin-left:auto;color:var(--mid)}.opps{width:100%;border-collapse:collapse}.opps th{text-align:left;font-size:11px;font-weight:500;letter-spacing:.08em;text-transform:lowercase;color:var(--mid);border-bottom:1px solid var(--ink);padding:8px 10px 6px;cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}.opps th.active{color:var(--ink)}.opps td{padding:9px 10px;border-bottom:1px solid var(--line);vertical-align:top}.opps tr.row{cursor:pointer}.opps tr.row:hover td,.opps tr.selected td{background:var(--soft)}.opps .title-cell{max-width:380px}.opps .overdue{color:#b00000;font-weight:500}.opps .soon{font-weight:500}.opps a{color:inherit}.badge{display:inline-block;border:1px solid var(--ink);padding:1px 7px;font-size:11px;text-transform:lowercase;white-space:nowrap}.badge.dim{border-color:var(--mid);color:var(--mid)}.fit{font-variant-numeric:tabular-nums;letter-spacing:.15em}.detail{position:fixed;top:0;right:0;width:min(520px,92vw);height:100vh;background:var(--paper);border-left:1px solid var(--ink);padding:28px 28px 48px;overflow-y:auto;z-index:10}.detail-close{position:absolute;top:16px;right:20px;border:none;background:none;font-size:20px;cursor:pointer;color:var(--mid)}.detail h3{font-size:17px;font-weight:500;margin:0 40px 2px 0}.detail .agency{color:var(--mid);margin-bottom:20px}.keydates{border:1px solid var(--ink);margin:0 0 22px}.keydates-title{font-size:11px;letter-spacing:.14em;text-transform:lowercase;color:var(--paper);background:var(--ink);padding:5px 12px}.kd-row{display:grid;grid-template-columns:1fr auto auto;align-items:baseline;gap:12px;padding:8px 12px;border-top:1px solid var(--line)}.kd-row:first-of-type{border-top:none}.kd-emph{background:var(--soft)}.kd-emph .kd-date{font-weight:500}.kd-label{text-transform:lowercase;color:var(--mid)}.kd-emph .kd-label{color:var(--ink);font-weight:500}.kd-date{font-variant-numeric:tabular-nums}.kd-rel{font-size:11px;text-transform:lowercase;white-space:nowrap;min-width:74px;text-align:right}.kd-tbd{color:var(--mid)}.kd-ok{color:var(--ink)}.kd-soon{color:#000;font-weight:500}.kd-overdue{color:#b00000;font-weight:500}.detail dl{display:grid;grid-template-columns:130px 1fr;gap:6px 14px;margin:0 0 20px}.detail dt{color:var(--mid);font-size:12px;text-transform:lowercase}.detail dd{margin:0;overflow-wrap:anywhere}.detail .edit-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}.detail label{display:block;font-size:11px;color:var(--mid);text-transform:lowercase;margin-bottom:3px}.detail select,.detail input,.detail textarea{font:inherit;width:100%;border:1px solid var(--ink);padding:6px 8px;background:var(--paper);border-radius:0}.detail textarea{min-height:70px;resize:vertical}.detail .full{grid-column:1 / -1}.detail .save{font:inherit;border:1px solid var(--ink);background:var(--ink);color:var(--paper);padding:8px 22px;cursor:pointer;text-transform:lowercase;letter-spacing:.05em}.detail .save:disabled{background:var(--mid);border-color:var(--mid);cursor:default}.detail .saved-note{color:var(--mid);margin-left:10px}.empty{color:var(--mid);padding:32px 0;text-align:center}.error-banner{border:1px solid #b00000;color:#b00000;padding:10px 14px;margin-bottom:20px}
