
:root{--ink:#172d2a;--muted:#7a8782;--green:#27634e;--line:#e4e8e2;--paper:#f6f7f3}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:14px Manrope,Segoe UI,sans-serif}button,input,select{font:inherit}button{cursor:pointer}aside{position:fixed;inset:0 auto 0 0;width:248px;background:#fff;border-right:1px solid var(--line);padding:38px 24px}.brand{font-size:36px;font-weight:800;letter-spacing:-2px;color:var(--ink);text-decoration:none;display:block}.brand span{color:#76a283}.brand i{display:block;letter-spacing:1.8px;font-size:8px;font-style:normal;margin-top:5px}.workspace{font-size:9px;letter-spacing:1.4px;color:var(--muted);margin:49px 12px 24px;line-height:2.5}.workspace strong{font-size:12px;letter-spacing:0;color:#45534c}nav button{width:100%;border:0;background:none;color:#748078;padding:15px 12px;margin-bottom:7px;border-radius:8px;text-align:left;font-size:20px;display:flex;align-items:center;gap:12px}nav button span{font-size:12px;font-weight:700}nav button.active{background:#eaf1e9;color:var(--green)}nav b{font-size:10px;margin-left:auto;background:#fff;padding:3px 6px;border-radius:4px}.sidebottom{position:absolute;bottom:22px;font-size:11px;color:#68786d}.sidebottom div{font-size:9px;margin-top:9px}.sidebottom p{font-size:9px;letter-spacing:1px;margin-top:30px;color:#a0a89f}.live{display:inline-block;width:6px;height:6px;border-radius:50%;background:#6ca478;margin-right:5px}main{margin-left:248px}header{height:83px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;padding:0 45px;font-size:11px;color:#7a847c}header em{margin:0 15px;color:#b8beb7}header b{font-weight:600;color:#3d5145}.pill{border:1px solid #dce5d7;border-radius:30px;padding:7px 11px;font-size:10px;color:#608067}#content{max-width:1450px;margin:auto;padding:39px 45px}.eyebrow{font-size:9px;letter-spacing:2px;color:#7c9080;font-weight:800;margin-bottom:12px}h1{font-size:30px;letter-spacing:-1px;margin:0 0 9px}h2{font-size:16px;margin:0}p{color:var(--muted);line-height:1.8}.heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:28px}.heading p{margin:0;font-size:12px}.btn{border:1px solid #dce2d9;background:white;color:#42574a;border-radius:7px;padding:11px 17px;font-weight:700;font-size:11px;display:inline-flex;gap:8px;align-items:center;justify-content:center}.btn.primary{background:var(--green);border-color:var(--green);color:white}.btn:disabled{opacity:.5;cursor:wait}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin:26px 0}.stat{background:#fff;border:1px solid var(--line);border-radius:10px;padding:20px 22px}.stat small{color:#7c897e;font-size:10px}.stat strong{display:block;font-size:29px;margin-top:8px;letter-spacing:-1px}.stat strong span{font-size:10px;letter-spacing:0;font-weight:500;color:#879388;margin-left:9px}.stat:first-child{background:#edf2e9;border-color:#dce6d6}.grid{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:22px}.card{background:#fff;border:1px solid var(--line);border-radius:11px;margin-bottom:20px;overflow:hidden}.cardhead{padding:23px 24px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}.cardhead h2{font-size:14px}.cardhead p{font-size:10px;margin:7px 0 0}.step{font-size:10px;color:#879583}.body{padding:22px 24px}.setting{display:flex;align-items:center;justify-content:space-between;padding:0 0 20px;margin-bottom:20px;border-bottom:1px solid #eef0eb}.setting strong{font-size:12px}.setting p{font-size:10px;margin:6px 0 0}.switch{appearance:none;width:34px;height:20px;border-radius:20px;background:#d8dfd5;position:relative;cursor:pointer;flex-shrink:0}.switch:before{content:'';position:absolute;width:14px;height:14px;background:white;border-radius:50%;top:3px;left:3px;transition:.2s}.switch:checked{background:var(--green)}.switch:checked:before{left:17px}.roles{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.role{border:1px solid #e2e8dd;background:#f8faf6;padding:10px;border-radius:5px;font-size:11px;display:flex;align-items:center;gap:6px}.role input{accent-color:var(--green)}.subheading{font-size:9px;letter-spacing:1.3px;color:#879584;margin:22px 0 12px}.rule{display:flex;gap:12px;margin-bottom:22px}.rule i{width:26px;height:26px;display:grid;place-items:center;background:#edf2e8;border-radius:50%;font-style:normal;font-size:10px;flex-shrink:0}.rule strong{font-size:11px}.rule p{font-size:10px;margin:6px 0}.note{background:#f4f6ef;border:1px solid #e4e9db;padding:15px;font-size:10px;line-height:1.8;color:#76816c;border-radius:7px}.drawfooter{padding:20px 24px;background:#fafbf7;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:15px}.drawfooter span{font-size:10px;color:#82907d}.badge{font-size:9px;padding:4px 8px;background:#edf2e8;color:#527249;border-radius:4px;white-space:nowrap}.badge.a{background:#eef0fa;color:#727fa0}.badge.b{background:#f7efe3;color:#a08b60}table{width:100%;border-collapse:collapse;text-align:left}th{font-size:9px;letter-spacing:1px;color:#83907f;background:#fafbf8;font-weight:600}td,th{padding:15px 23px;border-bottom:1px solid #edf0e9}td{font-size:11px}td strong{font-weight:700}.avatar{display:inline-grid;place-items:center;width:28px;height:28px;background:#edf1e8;border-radius:50%;margin-right:10px;color:#65805c;font-size:10px}.toolbar{display:flex;gap:12px;padding:18px 23px;border-bottom:1px solid var(--line)}input,select{border:1px solid #dfe5da;border-radius:6px;padding:10px 12px;background:white;color:var(--ink);outline-color:#91ad8a}.toolbar input{flex:1;min-width:100px}.actions{display:flex;gap:9px;justify-content:flex-end}.textbtn{border:0;background:none;color:#698169;font-size:11px}.danger{color:#b76a63}.empty{text-align:center;padding:50px;color:#809079}.empty h2{font-size:19px;color:#345943}.resulttitle{display:flex;justify-content:space-between;gap:15px}.resulttable td:first-child{font-weight:800;width:18%;background:#fafbf8}.resulttable small{display:block;font-size:9px;color:#93a08c;margin-top:4px}.resulttable .group td{background:#ecf1e7;color:#748867;font-size:9px;letter-spacing:1px}.notice{padding:12px 16px;background:#fff6e8;color:#957446;border-radius:7px;font-size:11px;margin-bottom:20px}dialog{border:1px solid var(--line);border-radius:14px;padding:30px;width:420px;color:var(--ink)}dialog::backdrop{background:#172d2a66}dialog label{display:block;margin:18px 0;font-size:11px}dialog input:not([type=checkbox]),dialog select{display:block;width:100%;margin-top:8px}.check{display:flex;align-items:center;gap:8px}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:#203f32;color:white;padding:15px 25px;border-radius:8px;display:none;z-index:10;font-size:12px}.file{display:none}.footline{font-size:9px;color:#9ba593;margin-top:25px;display:flex;justify-content:space-between}.small{font-size:10px;color:#829078}.resulttable th{width:41%}@media(min-width:1500px){#content{padding-top:50px}}@media(max-width:1050px){aside{width:205px;padding:30px 15px}main{margin-left:205px}header{padding:0 25px}#content{padding:25px}.grid{grid-template-columns:1fr}.rulescard{display:none}.roles{grid-template-columns:repeat(4,1fr)}}@media(max-width:700px){aside{position:static;width:auto;padding:15px;border-bottom:1px solid var(--line)}.brand{font-size:25px}.brand i,.workspace,.sidebottom{display:none}nav{display:flex;margin-top:15px}nav button{padding:8px;font-size:16px;margin:0}nav button span{font-size:10px}main{margin:0}header{height:55px;padding:0 15px}.pill{display:none}#content{padding:23px 15px}h1{font-size:25px}.heading{gap:12px;align-items:flex-start}.stats{grid-template-columns:repeat(2,1fr);gap:10px}.stat{padding:14px}.roles{grid-template-columns:repeat(2,1fr)}td,th{padding:12px 10px}.toolbar{flex-wrap:wrap}.heading .actions{flex-wrap:wrap}.drawfooter{align-items:flex-start;flex-direction:column}.cardhead{padding:18px}.body{padding:18px}.tablewrap{overflow:auto}}@media print{aside,header,.heading .actions,.footline,#toast{display:none}main{margin:0}#content{padding:0;max-width:none}.card{border:0}.resulttable td,.resulttable th{padding:8px}.badge{border:1px solid #ddd}body{background:white}}
/* Projection: every active role fits the available screen height. */
body.projection{height:100dvh;overflow:hidden}
.projection aside,.projection header,.projection .heading .actions,.projection .footline,.projection #content>.eyebrow,.projection .step-panel,.projection .cardhead{display:none}
.projection main{margin:0;height:100%}
.projection #content{max-width:none;height:100%;padding:16px 28px;display:flex;flex-direction:column;gap:10px}
.projection .heading{flex:none;margin:0;min-height:46px;align-items:center}
.projection h1{font-size:24px;margin:0;letter-spacing:-.5px}
.projection .heading p{font-size:11px;line-height:1.4;margin-top:3px}
.projection #content>.card{flex:1;min-height:0;margin:0}
.projection .tablewrap{height:100%;overflow:visible}
.projection .resulttable{height:100%;table-layout:fixed}
.projection .resulttable tr{height:calc((100dvh - 100px)/var(--display-rows,30))}
.projection .resulttable td,.projection .resulttable th{padding:2px 16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.15;font-size:clamp(12px,1.5vh,17px);vertical-align:middle}
.projection .resulttable th{font-size:12px;height:30px}
.projection .resulttable th:first-child,.projection .resulttable td:first-child{width:18%}
.projection .resulttable th:not(:first-child){width:41%}
.projection .resulttable td strong{display:inline-block;max-width:60%;overflow:hidden;text-overflow:ellipsis;vertical-align:middle}
.projection .resulttable small{display:inline-block;float:right;max-width:28%;overflow:hidden;text-overflow:ellipsis;font-size:clamp(10px,1.1vh,13px);line-height:1.4;margin:0;color:#6b7d65}
.projection .resulttable .badge{padding:2px 6px;font-size:10px;vertical-align:middle}
.projection .resulttable .group td{font-size:10px;letter-spacing:1px}
@media print{body.projection{height:auto;overflow:visible}.projection #content{height:auto}.projection .resulttable tr{height:auto}}
.reroll{display:block;padding:5px 0 0;font-size:10px}.projection .reroll{display:none}@media print{.reroll{display:none}}
.reference-picker{display:block;margin-top:9px;font-weight:400}.reference-picker span{display:block;font-size:9px;color:#7a8782;margin-bottom:5px}.reference-picker select{width:100%;min-width:160px;max-width:260px;font-size:11px;padding:7px}.projection .reference-picker{display:none}@media print{.reference-picker{display:none}}
