:root{--canvas:#e5cca8;--ink:#121601;--primary:#bc4d22;--primary-hover:#a33d18;--accent:#043a12;--support:#aa9477;--line:#423522;--panel:#efe0c4;--mono:"Berkeley Mono", "SF Mono", ui-monospace, Menlo, "Courier New", monospace}*{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--canvas);color:var(--ink);font-family:var(--mono);max-width:100vw;font-size:13px;line-height:1.5;overflow-x:hidden}a{color:var(--accent)}h1{letter-spacing:.1em;text-transform:uppercase;border-bottom:3px solid var(--ink);padding-bottom:12px;font-size:20px}h2{letter-spacing:.18em;text-transform:uppercase;border-bottom:1.5px solid var(--line);margin:26px 0 12px;padding-bottom:5px;font-size:11px}.sub{letter-spacing:.14em;text-transform:uppercase;color:var(--line);margin:6px 0 24px;font-size:10px}.site-header{border-bottom:3px solid var(--ink);background:var(--canvas)}.site-header .bar{max-width:960px;margin:0 auto;padding:14px 20px 0}.wordmark{letter-spacing:.14em;text-transform:uppercase;color:var(--ink);font-size:15px;font-weight:700;text-decoration:none}.wordmark span{color:var(--primary)}.site-nav{flex-wrap:wrap;gap:0 26px;max-width:960px;margin:0 auto;padding:10px 20px 0;display:flex}.nav-group{padding-bottom:10px}.nav-group .nav-label{letter-spacing:.16em;text-transform:uppercase;color:var(--line);margin-bottom:3px;font-size:8.5px}.nav-group .nav-links{gap:8px;display:flex}.nav-links a{letter-spacing:.08em;text-transform:uppercase;color:var(--ink);border:1.5px solid #0000;padding:2px 6px;font-size:11px;text-decoration:none}.nav-links a:hover{border-color:var(--ink)}.nav-links a.active{background:var(--ink);color:var(--canvas)}.signout{letter-spacing:.12em;text-transform:uppercase;color:var(--line);cursor:pointer;float:right;background:0 0;border:none;padding:2px 0;font-family:inherit;font-size:9px}.signout:hover{color:var(--primary)}main.wrap{max-width:960px;margin:0 auto;padding:36px 20px 70px}.panel{border:1.5px solid var(--ink);background:var(--panel);padding:16px}.cols{flex-wrap:wrap;gap:20px;display:flex}.cols>.grow{flex:340px}.cols>.side{flex:300px}label,.lbl{letter-spacing:.14em;text-transform:uppercase;color:var(--line);margin:12px 0 4px;font-size:9px;display:block}input[type=text],input[type=number],input[type=password],select,textarea{border:1.5px solid var(--ink);background:var(--canvas);width:100%;color:var(--ink);border-radius:0;padding:7px 8px;font-family:inherit;font-size:12px}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:1px}input[type=range]{width:100%;accent-color:var(--primary)}input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]{appearance:textfield}textarea{min-height:70px}.toggle{gap:6px;display:flex}.toggle button{letter-spacing:.08em;text-transform:uppercase;border:1.5px solid var(--ink);background:var(--canvas);color:var(--ink);cursor:pointer;flex:1;padding:8px 4px;font-family:inherit;font-size:10px}.toggle button.on{background:var(--ink);color:var(--canvas)}.toggle button:disabled{opacity:.4;cursor:not-allowed}.btn{letter-spacing:.14em;text-transform:uppercase;border:1.5px solid var(--ink);background:var(--accent);color:var(--canvas);cursor:pointer;border-radius:0;padding:11px 16px;font-family:inherit;font-size:11px;font-weight:700}.btn:hover{filter:brightness(1.2)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn.primary{background:var(--primary)}.btn.primary:hover{background:var(--primary-hover);filter:none}.btn.ghost{background:var(--canvas);color:var(--ink)}.btn.ghost:hover{filter:none;background:var(--panel)}.btn.small{padding:6px 10px;font-size:9.5px}.btn.full{width:100%;margin-top:14px}.chkrow{flex-wrap:wrap;gap:4px 14px;margin-top:4px;display:flex}.chkrow label{letter-spacing:.06em;cursor:pointer;text-transform:none;color:var(--ink);align-items:center;gap:6px;margin:0;font-size:11px;display:inline-flex}.chkrow input{width:auto;accent-color:var(--accent)}.note{color:var(--line);margin-top:6px;font-size:10px;line-height:1.5}.err{color:#d30500;font-size:11px;font-weight:700}.okmsg{color:var(--accent);font-size:11px;font-weight:700}.msgs{margin-top:10px;font-size:10.5px;line-height:1.6}.msg{border:1.5px solid var(--ink);margin-bottom:6px;padding:6px 8px}.msg.block{color:#fff;background:#d30500}.msg.warn{color:var(--ink);background:#b28a4f}.msg.ok{background:var(--accent);color:#fff}.swatch{border:1.5px solid var(--ink);height:120px;color:var(--canvas);flex-direction:column;justify-content:flex-end;padding:10px;display:flex}.swatch .nm{letter-spacing:.06em;font-size:14px;font-weight:700}.swatch .aa{opacity:.9;margin-top:2px;font-size:11px}.read{margin-top:10px;font-size:11px;line-height:1.7}.figure{border:1.5px solid var(--ink);background:var(--panel);margin-top:8px;padding:12px}.steps{align-items:center;gap:8px;margin:0 0 18px;display:flex}.step-i{align-items:center;gap:8px;display:flex}.step-i .circle{border:1.5px solid var(--line);width:26px;height:26px;color:var(--line);background:var(--canvas);justify-content:center;align-items:center;font-size:12px;font-weight:700;display:inline-flex}.step-i.active .circle{background:var(--ink);border-color:var(--ink);color:var(--canvas)}.step-i .slabel{letter-spacing:.1em;text-transform:uppercase;color:var(--support);font-size:9px;font-weight:700}.step-i.active .slabel{color:var(--ink)}.connector{background:var(--line);opacity:.4;flex:1;min-width:14px;height:1.5px}table{border-collapse:collapse;width:100%;margin-top:8px;font-size:10.5px}th{letter-spacing:.12em;text-transform:uppercase;text-align:left;color:var(--line);border-bottom:1.5px solid var(--ink);padding:4px 6px;font-size:8.5px}td{border-bottom:1px solid var(--line);vertical-align:middle;padding:5px 6px}.chip{border:1px solid var(--ink);vertical-align:middle;width:26px;height:16px;display:inline-block}.grid2{grid-template-columns:1fr 1fr;gap:0 16px;display:grid}.grid2 .full{grid-column:1/-1}.frow{align-items:flex-end;gap:12px;display:flex}.frow>div{flex:1}.frow .pct{flex:0 0 88px}.pct input{text-align:center}.navrow{justify-content:space-between;align-items:center;gap:12px;margin-top:22px;display:flex}.navrow .mid{text-align:center;flex:1}.stub{border:1.5px dashed var(--line);text-align:center;letter-spacing:.14em;text-transform:uppercase;color:var(--line);padding:48px 20px;font-size:11px}.added{color:var(--accent);margin:4px 0;font-size:11px;font-weight:700}.btotal{letter-spacing:.08em;margin:12px 0 4px;font-size:11px;font-weight:700}.btotal.ok{color:var(--accent)}.btotal.bad{color:#d30500}
