html,body{height:100%}body{font-size:14px}#app{grid-template-rows:auto auto 1fr;grid-template-columns:1fr 440px;height:100vh;display:grid}#links,#bar{grid-column:1/-1}#links{padding:8px var(--gutter);font:500 13px/1.2 var(--font-mono);border-bottom:2px solid var(--ink);flex-wrap:wrap;gap:4px 20px;display:flex}#links a{color:var(--ink);text-decoration:none}#links a:hover{text-decoration:underline}#bar{background:var(--ink);color:var(--paper);font:500 13px/1 var(--font-mono);flex-wrap:wrap;align-items:center;gap:6px 8px;padding:6px 10px;display:flex}#bar .sep{background:var(--grey-300);width:1px;height:20px;margin:0 4px}#bar button{color:var(--paper);font:inherit;cursor:pointer;background:0 0;border:1.5px solid #0000;padding:6px 8px}#bar button:hover{border-color:var(--paper)}#bar button.on{background:var(--paper);color:var(--ink)}#bar select,#bar input:not([type=checkbox]):not([type=range]){background:var(--paper);color:var(--ink);border:1.5px solid var(--ink);font:inherit;border-radius:0;padding:5px 8px}#bar input[type=password],#bar input#fableModel{width:150px}#bar label{color:var(--grey-100);align-items:center;gap:6px;display:inline-flex}#bar input[type=range]{accent-color:var(--paper);width:90px}#bar input[type=checkbox]{accent-color:var(--paper)}#bar :focus-visible{outline:3px solid var(--pink);outline-offset:1px}#scene-win{flex-direction:column;min-height:0;margin:16px 10px 20px 16px;display:flex}#scene{background:var(--paper);flex:1;min-height:300px;position:relative}#scene canvas{display:block;width:100%!important;height:100%!important}#panel{flex-direction:column;gap:20px;padding:16px 20px 40px 14px;display:flex;overflow-y:auto}#panel .win-body{background:var(--paper);font-size:13px}#panel .win-body>:first-child{margin-top:0}h3{font:500 12px/1.2 var(--font-mono);letter-spacing:0;margin:12px 0 6px}.muted{color:#1e1e1eb3}.mono{font-family:var(--font-mono);font-size:12px}.stats{border:2px solid var(--ink);background:var(--paper);grid-template-columns:repeat(3,1fr);display:grid}.stat{border:1px solid var(--grey-300);font-family:var(--font-mono);padding:6px 10px}.stat .k{color:#1e1e1eb3;font-size:11px}.stat .v{font-size:16px;font-weight:500}.action{margin-bottom:10px}.q{border-top:1px solid var(--grey-300);padding:10px 0}.action+.q{border-top:0;padding-top:0}.qt{margin-bottom:6px}.progress{margin:4px 0}.progress.small{height:10px;margin:0}.tag,.chip{font:500 11px/1 var(--font-mono);border:1.5px solid var(--ink);background:var(--paper);color:var(--ink);vertical-align:middle;padding:3px 7px;display:inline-block}.tag.bad,.chip.bad{background:var(--ink);color:var(--paper)}.notice,.warn-line{font:500 12px/1.4 var(--font-mono);border:1.5px solid var(--ink);margin-top:8px;padding:6px 8px}.notice{background:var(--pink)}.chips{flex-wrap:wrap;gap:4px;display:flex}table{border-collapse:collapse;width:100%;font:400 11px/1.35 var(--font-mono);margin-top:8px}th{text-align:left;border-bottom:1.5px solid var(--ink);padding:4px;font-weight:500}td{border-top:1px solid var(--grey-300);vertical-align:top;padding:4px}details summary{cursor:pointer;font-family:var(--font-mono);margin-top:10px;font-size:12px}.diff{border-top:1px solid var(--grey-300);padding:10px 0;font-size:12px}.diff:first-child{border-top:0;padding-top:0}.diff b{font-family:var(--font-mono)}.add,.rm{font:400 11px/1.4 var(--font-mono)}.rm{color:#1e1e1eb3;text-decoration:line-through}#graph svg{background:var(--paper);border:1.5px solid var(--grey-300);width:100%;font-family:var(--font-mono)}#graph line{stroke:var(--ink);stroke-width:1.2px}#graph circle{fill:var(--paper);stroke:var(--ink);stroke-width:1.5px}#graph text{fill:var(--ink);text-anchor:middle;font-size:10px}#graph .e{font-size:9px}#graph .u{fill:#1e1e1eb3;font-size:9px}.stages .stage{font:400 12px/1.2 var(--font-mono);grid-template-columns:110px 1fr 90px;align-items:center;gap:8px;margin:4px 0;display:grid}.row{grid-template-columns:220px 1fr;gap:12px;margin-top:10px;display:grid}#cal{background:var(--paper);border:1.5px solid var(--grey-300);max-width:100%;display:block}dialog.card{border-radius:0;width:min(460px,100% - 32px);padding:0}dialog.card::backdrop{background:#1e1e1e59}.card .statement{margin:0 0 18px;font-size:clamp(18px,2vw,24px)}.btns{flex-wrap:wrap;gap:8px;display:flex}.btns .btn{text-align:center;flex:1}@media (width<=900px){#app{grid-template-rows:auto auto 55vh auto;grid-template-columns:1fr;height:auto}#scene-win{margin:12px 20px 12px 12px}#scene{min-height:0}#panel{padding:8px 20px 40px 12px;overflow:visible}.row{grid-template-columns:1fr}.stages .stage{grid-template-columns:90px 1fr 80px}#bar input[type=password],#bar input#fableModel{width:120px}}
