:root{--face:#f0f0f0;--white:#fff;--ink:#000;--navy:navy;--gray-text:#7f7f7f;--ro:#f9f7d9;--blue:#0078d4;--sel:#0778d0;--hub-btn:#c0f0b8;--panel:#c0ffff;--hi:#fff;--shadow:grey;--dark:#404040;--bad:#c00000;--ok:#006400;--sans:Tahoma,"MS Sans Serif",Arial,sans-serif;--serif:"Times New Roman",Times,serif;--mono:"Courier New",Consolas,monospace}*{box-sizing:border-box}body,html{margin:0;background:var(--face);color:var(--ink);font:12px/1.35 var(--sans)}a{color:var(--navy)}b,strong{font-weight:700}:focus-visible{outline:1px dotted #000;outline-offset:1px}.num{font-family:var(--mono);text-align:right;white-space:nowrap}u.k{text-decoration:underline}.raised{border:2px solid;border-color:var(--hi) var(--dark) var(--dark) var(--hi);box-shadow:inset -1px -1px 0 var(--shadow),inset 1px 1px 0 #dfdfdf}.sunken{border:2px solid;border-color:var(--shadow) var(--hi) var(--hi) var(--shadow);box-shadow:inset 1px 1px 0 var(--dark)}.frame{max-width:1200px;margin:0 auto;background:var(--face);min-height:100vh}.headband{position:relative;padding:6px 10px 0;text-align:center;background:var(--white);border-bottom:1px solid #c9c9c9}.headband .pm{left:10px;color:#2323b0}.headband .dt,.headband .pm{position:absolute;top:6px;font:700 13px var(--serif)}.headband .dt{right:10px;color:#000}.headband .brand{font:italic 700 34px var(--serif);color:#2e6b1f;letter-spacing:2px;text-shadow:1px 1px 0 #cfe8c4;margin-top:4px}.headband .co{text-align:left;font:700 13px var(--serif);color:#2323b0;margin-top:6px}.headband .banner{font:700 28px var(--serif);letter-spacing:1px;background:linear-gradient(#d9631a 0 45%,#2e6b1f 55% 100%);-webkit-background-clip:text;background-clip:text;color:transparent;line-height:1.15}.headband .title{font:700 22px Arial,sans-serif;color:var(--navy);padding:6px 0 8px}.work{background:var(--face);padding:10px 12px 24px;min-height:60vh}.hub{position:relative;min-height:100vh;padding:18px;background:radial-gradient(ellipse at 50% 40%,#3f6b3a 0,#234a2a 60%,#162f1c 100%)}.hub h1{text-align:center;margin:0 0 8px;font:700 40px var(--serif);color:#e8d9a0;text-shadow:2px 2px 0 #000;letter-spacing:3px}.hub-grid{display:grid;grid-template-columns:180px 1fr 180px;grid-gap:18px;gap:18px;align-items:start}.hub-col{display:grid;grid-gap:14px;gap:14px}.hub-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:86px;padding:6px;background:var(--hub-btn);color:#000;font:700 13px var(--sans);text-decoration:none;cursor:pointer;border-color:#f6fff3 #5b7a55 #5b7a55 #f6fff3;border-style:solid;border-width:2px;box-shadow:1px 1px 2px #000}.hub-btn:hover{background:#d2fcc8}.hub-btn[aria-disabled=true]{background:#a9b8a5;color:#4d584a;cursor:not-allowed;box-shadow:none}.hub-btn .ic{font-size:30px;line-height:1}.hub-btn small{font:400 10px var(--sans)}.hub-panel{min-height:360px;background:rgba(210,225,215,.72);text-align:center;padding:30px 12px;display:flex;flex-direction:column;justify-content:space-between;border:1px solid #ffffff55}.hub-panel .t1{font:400 22px var(--serif);color:#111}.hub-panel .t2{font:700 13px var(--serif);color:#2323b0}.hub-panel .t3{font:700 28px var(--serif);color:#1a3cd2}.hub-panel .t4{font:700 18px var(--serif);color:#2e5b1f}.hub-bottom{display:flex;gap:18px;justify-content:center;margin-top:18px}.hub-bottom .hub-btn{width:180px}.cascade{display:grid;grid-template-columns:repeat(4,1fr);border:2px solid var(--shadow);background:var(--face);min-height:420px}.cascade .col{border-right:2px solid var(--shadow)}.cascade .col:last-child{border-right:0}.cascade .head{background:var(--blue);color:#fff;font:400 17px Arial,sans-serif;text-align:center;padding:20px 4px;min-height:64px;border-bottom:2px solid var(--dark)}.cascade .list{padding:6px}.cascade .item{display:block;width:100%;text-align:left;border:0;background:transparent;padding:10px 6px;font:700 17px Arial,sans-serif;color:var(--gray-text);cursor:pointer;text-decoration:none}.cascade .col:not(:first-child) .item{font:700 12px var(--sans);color:#000;padding:6px 4px}.cascade .item.on{background:var(--sel);color:#fff}.cascade .item:hover:not(.off):not(.on){background:#dbe9f7}.cascade .item.off{color:#b0b0b0;cursor:not-allowed;font-weight:400}.cascade .item .tag{font:400 10px var(--sans)}.win{background:var(--face);border:1px solid #9a9a9a;margin-bottom:12px}.win-cap{display:flex;align-items:center;gap:6px;padding:3px 8px;background:#e8e8e8;border-bottom:1px solid #b5b5b5;font:400 12px var(--sans)}.win-body,fieldset.grp{padding:10px 12px 12px}fieldset.grp{border-color:#fff #a0a0a0 #a0a0a0 #fff;border-style:groove;border-width:2px;margin:0 0 10px;min-width:0}fieldset.grp legend{font-weight:700;padding:0 4px}.rowf{display:flex;gap:12px 22px;flex-wrap:wrap;margin-bottom:8px}.rowf,label.f{align-items:center}label.f{display:inline-flex;gap:8px;font-weight:700}label.f.col{flex-direction:column;align-items:stretch;gap:3px}input,select,textarea{font:12px var(--sans);color:#000;background:#fff;padding:2px 4px;min-height:22px;border:2px solid;border-color:var(--shadow) var(--hi) var(--hi) var(--shadow);box-shadow:inset 1px 1px 0 var(--dark);border-radius:0}input:disabled,input[readonly],select:disabled{background:var(--ro);color:#444}input[type=checkbox]{min-height:0;box-shadow:none}.btn{font:700 12px var(--sans);min-height:26px;min-width:76px;padding:2px 12px;background:var(--face);color:#000;border:2px solid;border-color:var(--hi) var(--dark) var(--dark) var(--hi);box-shadow:inset -1px -1px 0 var(--shadow),inset 1px 1px 0 #dfdfdf;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;border-radius:0}.btn:active:not(:disabled){border-color:var(--dark) var(--hi) var(--hi) var(--dark);box-shadow:inset 1px 1px 0 var(--shadow)}.btn:disabled,.btn[aria-disabled=true]{color:#8a8a8a;text-shadow:1px 1px 0 #fff;cursor:not-allowed}.btn.primary{outline:1px solid #000;outline-offset:-4px}.btn.danger{color:var(--bad)}.btn.link{border:0;box-shadow:none;background:none;min-width:0;min-height:0;padding:0 4px;text-decoration:underline;color:var(--navy);font-weight:400}.btnbar{display:flex;gap:0;border:2px solid;border-color:#fff var(--shadow) var(--shadow) #fff;background:var(--face);padding:6px;width:-moz-fit-content;width:fit-content;max-width:100%;flex-wrap:wrap;margin:12px auto 0}.btnbar .g{display:flex;gap:4px;padding:2px 8px;border-right:2px groove #fff}.btnbar .g:last-child{border-right:0}.scroll{overflow:auto;border:2px solid;border-color:var(--shadow) var(--hi) var(--hi) var(--shadow);background:#fff;max-height:62vh}table.grid{width:100%;border-collapse:collapse;background:#fff}.grid th{background:var(--face);font-weight:700;text-align:left;padding:2px 6px;border-color:#fff grey grey #fff;border-style:solid;border-width:1px;position:-webkit-sticky;position:sticky;top:0;z-index:1;white-space:nowrap}.grid td{padding:1px 6px;border:1px solid #c8c8c8;background:#fff}.grid td.sel,.grid th.sel{width:26px;background:var(--face);text-align:center;border-color:#fff grey grey #fff;border-style:solid;border-width:1px;padding:0 2px}.grid tbody tr:hover td:not(.sel){background:#eef5fc}.grid tbody tr.cur td:not(.sel){background:var(--sel);color:#fff}.grid td.num,.grid th.num{text-align:right}.grid tfoot td{font-weight:700;background:var(--face);border-color:#fff grey grey #fff;border-style:solid;border-width:1px}.grid input{width:100%;border:0;box-shadow:none;background:transparent;padding:1px 2px;min-height:20px}.grid input:focus{background:#fffbd0;outline:1px solid var(--sel)}.grid a{color:var(--navy)}.badge{display:inline-block;padding:0 6px;border:1px solid grey;background:#fff;font-size:11px}.badge.submitted{background:#ffe9a8}.badge.approved{background:#cfe6ff}.badge.posted{background:#c8f0c0}.badge.rejected{background:#f6c6c0}.note{padding:5px 8px;margin:0 0 8px;border:1px solid grey;background:#ffffe1}.note.bad{background:#ffd9d6;border-color:var(--bad);color:#600}.note.ok{background:#d9f3d6;border-color:var(--ok)}.diff{font:700 13px var(--mono);padding:2px 8px;border:2px solid;border-color:var(--shadow) var(--hi) var(--hi) var(--shadow);background:#fff}.diff.ok{color:var(--ok)}.diff.bad{color:var(--bad)}.empty{text-align:center;color:#555;padding:18px}.kpis{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}.kpi{background:#fff;padding:6px 12px;min-width:150px;border:2px solid;border-color:var(--shadow) var(--hi) var(--hi) var(--shadow)}.kpi b{display:block;font:700 20px var(--mono)}.kpi span{font-size:11px}.dlg-back{position:fixed;inset:0;background:rgba(0,0,0,.35);display:grid;place-items:center;z-index:20}.dlg{background:var(--face);width:min(420px,92vw);border:2px solid;border-color:#fff var(--dark) var(--dark) #fff;box-shadow:3px 3px 0 #0006}.dlg>h2{margin:0;padding:3px 8px;font:700 12px var(--sans);color:#fff;background:linear-gradient(90deg,navy,#1084d0)}.dlg .in{padding:12px}.dlg .row{display:flex;gap:8px;justify-content:flex-end;margin-top:12px}.loginbox{max-width:460px;margin:60px auto;background:var(--panel);padding:28px 32px;border:1px solid #9ad}.loginbox label.f{color:var(--navy);width:100%;justify-content:space-between;margin-bottom:12px}@media (max-width:860px){.hub-grid{grid-template-columns:1fr 1fr}.hub-panel{grid-column:1/-1;grid-row:1;min-height:160px}.hub h1{font-size:26px}.cascade{grid-template-columns:1fr 1fr}.headband .brand{font-size:24px}.headband .banner{font-size:18px}.headband .dt,.headband .pm{position:static;display:block;text-align:left}}@media print{.btnbar,.cascade,.hubnav,.no-print{display:none!important}.frame{max-width:none}}.page-head{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:8px}.page-head h1{display:none}.page-head p{margin:0;color:#333}.toolbar{display:flex;gap:8px 16px;align-items:end;flex-wrap:wrap;margin-bottom:8px}.vbform{position:relative;margin:0 auto 10px;background:var(--face)}.vbfr{border-color:#fff #a0a0a0 #a0a0a0 #fff;border-style:groove;border-width:2px}.vbfr,.vbfr>.cap{position:absolute}.vbfr>.cap{left:8px;top:-9px;background:var(--face);padding:0 3px;font-weight:700;white-space:nowrap}.vbp{position:absolute}.vbp.lbl{font:700 11px/13px var(--sans);white-space:nowrap}.vbp>.btn,.vbp>input,.vbp>select{width:100%;height:100%;min-height:0;min-width:0}.vbp>input.num{text-align:right}.vbp .scroll{max-height:none;height:100%}.grid tr.cur input{color:#fff}.grid tr.cur td:not(.sel){background:var(--sel);color:#fff}.vbp>select{padding:0 2px}.vbp>.btn{white-space:nowrap;padding:0 4px}