
:root{--ink:#1c302e;--muted:#66736e;--green:#24634f;--lime:#d2e58a;--paper:#f6f7f2;--line:#dce2d7;--orange:#c86e35;--white:#fff;--shadow:0 12px 40px #1c302e09;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--paper)}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #d9a54e;outline-offset:3px}button{border:1px solid var(--line);border-radius:8px;background:white;color:var(--ink);padding:10px 14px;font-size:12px;font-weight:650;transition:background .16s,transform .16s}button:hover:not(:disabled){background:#eef2e9}button.primary{background:var(--green);border-color:var(--green);color:#fff}button.primary:hover:not(:disabled){background:#184f3e}button.light{background:var(--lime);color:var(--ink);border-color:var(--lime)}button.ghost{background:transparent}button.danger{color:#b04435}button.small{padding:7px 10px;font-size:11px}a{color:var(--green)}h1,h2,h3,p{margin:0}h1{font-size:25px;letter-spacing:-1px}h2{font-size:18px;letter-spacing:-.5px}h3{font-size:14px}p{line-height:1.6}.muted{color:var(--muted)}.eyebrow{text-transform:uppercase;letter-spacing:1.7px;font-size:9px;font-weight:800}.row{display:flex;align-items:center;gap:10px}.between{justify-content:space-between}.wrap{flex-wrap:wrap}.grow{flex:1}.stack{display:grid;gap:12px}.topbar{background:#172c28;color:white;min-height:75px;padding:16px 28px;display:flex;justify-content:space-between;align-items:center;gap:18px}.brand{display:flex;align-items:center;gap:12px}.brandmark{width:37px;height:37px;border:1px solid #789b86;border-radius:8px;display:grid;place-items:center;color:var(--lime)}.brand-name{font-size:22px;font-weight:780;letter-spacing:-.9px}.brand-name span{font-weight:400;color:#b8cabb}.brand-sub{font-size:9px;letter-spacing:2.1px;color:#a5bcae;margin-top:3px}.topbar .tag{font-size:10px;border:1px solid #4a6053;padding:7px 10px;border-radius:20px;color:#d3e3cb}.topbar button{background:#ffffff09;color:#dbe6d6;border-color:#486052}.topbar button:hover:not(:disabled){background:#ffffff15}.workspace-head{padding:23px 28px 17px;display:flex;gap:18px;align-items:center;justify-content:space-between}.subtitle{font-size:12px;color:var(--muted);margin-top:5px}.tabs{display:flex;padding:4px;background:#e7ebe2;border:1px solid #dde3d5;border-radius:10px;gap:3px}.tabs button{background:transparent;border:0;padding:10px 16px;font-size:12px;white-space:nowrap}.tabs button.active{background:white;box-shadow:0 2px 8px #2340290c}.tabs .num{font-size:9px;font-weight:700;color:#7f8f7e;margin-right:6px}.app{display:grid;grid-template-columns:224px minmax(340px,1fr) 290px;gap:16px;padding:0 24px 20px;max-width:1900px;margin:auto}.panel{background:#fff;border:1px solid var(--line);border-radius:13px;overflow:hidden;box-shadow:var(--shadow)}.panel-head{padding:18px 17px;border-bottom:1px solid #ebeee7}.panel-head p{font-size:11px;color:var(--muted);margin-top:5px}.library{align-self:start}.library-cards{display:grid;gap:8px;padding:12px}.equipment-card{display:flex;align-items:center;gap:9px;padding:8px;border:1px solid #e4e8df;border-radius:9px;min-height:77px;text-align:left;background:#fff}.equipment-card:hover{border-color:#83ab87;background:#f6f9f1!important}.equipment-card .icon{display:grid;place-items:center;width:57px;height:58px;flex-shrink:0;background:#f1f3ed;border-radius:6px}.equipment-card b{display:block;font-size:12px;margin-bottom:4px}.equipment-card small{display:block;color:var(--muted);font-size:10px;font-weight:400}.plus{margin-left:auto;align-self:flex-start;color:#819582;font-size:19px;line-height:1}.library-note{margin:4px 16px 16px;font-size:10px;line-height:1.7;color:var(--muted)}.maincol{min-width:0}.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:12px}.metric{border:1px solid var(--line);border-radius:10px;background:white;padding:14px 15px}.metric .label{font-size:9px;letter-spacing:.7px;text-transform:uppercase;color:var(--muted)}.metric strong{display:block;font-size:22px;letter-spacing:-.8px;margin-top:6px}.metric strong small{font-size:10px;font-weight:500;letter-spacing:0;color:var(--muted)}.metric .hint{font-size:10px;color:var(--muted);margin-top:3px}.yard{background:#e8ede1;position:relative;border:1px solid #cfd9c6;border-radius:13px;overflow:hidden;min-height:400px}.yard-top{position:absolute;top:15px;left:16px;right:16px;display:flex;justify-content:space-between;align-items:flex-start;z-index:2;pointer-events:none}.yard-top>div{display:flex;gap:6px;pointer-events:auto}.chip{background:#fffffff0;border:1px solid #d4ddce;border-radius:6px;padding:7px 9px;box-shadow:0 2px 5px #1b3c1705;font-size:9px;color:#50604f;font-weight:600}.chip.dark{background:#203e30;border-color:#203e30;color:#d9e8c9}.yard svg#scene{display:block;width:100%;height:520px;touch-action:none;cursor:grab;user-select:none}.yard svg#scene.dragging{cursor:grabbing}.yard svg#scene.connecting{cursor:crosshair}.yard-bottom{position:absolute;left:16px;right:16px;bottom:14px;display:flex;align-items:end;justify-content:space-between;pointer-events:none;gap:8px}.yard-bottom>*{pointer-events:auto}.yard-help{font-size:10px;max-width:275px;color:#4e6251;line-height:1.6}.view-controls{display:flex;background:#fff;border:1px solid #d0d9c7;border-radius:8px;box-shadow:0 3px 12px #16351509;overflow:hidden}.view-controls button{border:0;border-radius:0;font-size:14px;min-width:35px;padding:8px 9px}.view-controls button+button{border-left:1px solid #e9ece5}.toolbar{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:12px 1px}.toolbar .row{gap:6px}.toolbar button{font-size:11px;padding:9px 10px}.toolbar .active{background:#dbe9cb;border-color:#78a26a}.legend{display:flex;gap:17px;font-size:10px;color:var(--muted);padding:3px 0 10px}.legend span{display:flex;align-items:center;gap:6px}.dot{width:7px;height:7px;border-radius:50%;display:inline-block;background:var(--green)}.dot.orange{background:#c97d36}.dot.blue{background:#458398}.callout{padding:15px 17px;border:1px solid #dce3d3;border-radius:11px;background:#eff3e7;font-size:11px;line-height:1.65}.callout b{font-size:12px;display:block;margin-bottom:3px}.callout.warning{background:#fbf2e5;border-color:#ead7bb}.rightcol{display:grid;gap:13px;align-content:start}.inspector{padding:17px}.inspector .section-label{font-size:9px;text-transform:uppercase;letter-spacing:1.6px;color:var(--muted);margin-bottom:10px}.inspector h3{font-size:18px;letter-spacing:-.4px}.inspector p{font-size:11px;color:var(--muted);margin:7px 0 13px}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.field label{display:block;font-size:10px;color:var(--muted);margin:0 0 5px}.field input,.field select,select.full{width:100%;min-width:0;background:#f8f9f5;border:1px solid #dbe2d4;border-radius:6px;padding:9px 8px;color:var(--ink);font-size:12px}.field input[type=range]{padding:4px 0;border:0;accent-color:var(--green)}.divider{height:1px;background:#e8ece2;margin:15px 0}.spec{display:flex;justify-content:space-between;font-size:11px;margin:9px 0;color:var(--muted)}.spec strong{color:var(--ink);font-weight:650}.empty-hint{padding:15px 0;text-align:center}.checks{padding:16px}.checks h3{margin-bottom:14px}.check{display:flex;align-items:flex-start;gap:8px;font-size:11px;line-height:1.45;margin:11px 0}.checkmark{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:17px;height:17px;border-radius:50%;font-size:10px;background:#e8ece4;color:#93a08b}.check.good .checkmark{color:#fff;background:#497854}.check small{display:block;color:#7b8679;font-size:10px;margin-top:2px}.score{margin-top:14px;border-top:1px solid var(--line);padding-top:13px}.score strong{font-size:21px}.bar{height:5px;background:#e4eadd;border-radius:4px;margin-top:9px;overflow:hidden}.bar>span{display:block;height:100%;background:#739353;transition:width .3s}.dark-card{background:#213d32;color:#e9efde;padding:18px;border-radius:12px}.dark-card .eyebrow{color:#adbc96}.dark-card h3{font-size:18px;margin:8px 0}.dark-card p{font-size:11px;color:#c0cdb4}.dark-card button{margin-top:14px;width:100%}.foot{padding:6px 28px 24px;display:flex;justify-content:space-between;gap:16px;font-size:10px;color:#74806f}.foot a{font-size:10px}.links{display:flex;gap:12px;flex-wrap:wrap}.modepanel{display:none}.modepanel.active{display:block}.stage-list{padding:8px 12px 13px}.stage-btn{width:100%;display:flex;align-items:center;gap:10px;text-align:left;padding:11px 8px;margin:4px 0;border-color:transparent}.stage-btn.active{background:#eff4e6;border-color:#c7d7b6}.stage-num{display:grid;place-items:center;width:26px;height:26px;flex-shrink:0;border-radius:7px;background:#edf0e7;font-size:10px}.stage-btn.done .stage-num{background:#2b6b51;color:#fff}.stage-btn b{font-size:11px;font-weight:650}.stage-btn small{display:block;font-size:9px;color:var(--muted);margin-top:3px;font-weight:400}.lesson{padding:22px}.lesson h2{font-size:24px;margin:8px 0 12px;letter-spacing:-.7px}.lesson .lesson-copy{font-size:13px;color:#55664e;line-height:1.8}.lesson ul{padding-left:18px;font-size:12px;color:#55664e;line-height:1.8}.question{margin-top:20px;border-top:1px solid #e1e8d7;padding-top:18px}.question h3{line-height:1.6;margin-bottom:12px}.answer{display:flex;align-items:center;text-align:left;gap:10px;width:100%;margin:8px 0;line-height:1.5;padding:12px;font-size:12px;font-weight:500}.answer .letter{border:1px solid #d5dfcb;border-radius:5px;padding:2px 6px;font-size:10px}.answer.correct{background:#eef6e4;border-color:#7da95d}.answer.wrong{background:#fcf1e9;border-color:#dca379}.feedback{font-size:12px;line-height:1.7;background:#f0f5e8;border-radius:7px;padding:12px;margin:12px 0}.feedback.wrong{background:#fbf0e4}.source{font-size:10px;color:var(--muted);margin-top:16px;line-height:1.7}.connection{display:flex;justify-content:space-between;align-items:center;gap:6px;font-size:10px;border-bottom:1px solid #edf0e8;padding:7px 0}.connection button{padding:3px 6px;border:0;color:#a5593e}.route-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.route-tags span{background:#edf3e7;border-radius:5px;padding:5px 7px;font-size:10px;color:#54704b}.statrow{display:flex;justify-content:space-between;align-items:center;font-size:12px;margin:13px 0}.statrow strong{font-size:17px}.run-button{width:100%;margin-top:12px;padding:13px}.runstatus{font-size:10px;line-height:1.7;color:var(--muted);margin:10px 0}.progress-label{display:flex;justify-content:space-between;font-size:10px;margin-top:14px}.progress-label b{font-weight:650}.notice{font-size:11px;line-height:1.65;padding:12px;border-radius:8px;background:#f7f0e2;color:#795638;margin-top:12px}.simulation-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:13px}.simulation-stats .metric{padding:13px}.simulation-stats .metric strong{font-size:20px}.hidden{display:none!important}.toast{position:fixed;bottom:22px;left:50%;transform:translate(-50%,20px);z-index:60;max-width:90vw;background:#1f392d;color:#fff;font-size:12px;line-height:1.6;padding:12px 18px;border-radius:9px;box-shadow:0 6px 30px #0d201d30;opacity:0;pointer-events:none;transition:.2s}.toast.show{opacity:1;transform:translate(-50%,0)}dialog{border:1px solid #d1dcc7;border-radius:16px;padding:0;width:min(570px,92vw);max-height:85vh;box-shadow:0 30px 80px #142d2933;color:var(--ink)}dialog::backdrop{background:#142d2966;backdrop-filter:blur(3px)}.dialog-content{padding:26px}.dialog-content h2{font-size:23px;margin-bottom:14px}.dialog-content p{font-size:13px;color:#596d54;margin:12px 0;line-height:1.8}.dialog-content .row{margin-top:22px}.dialog-content ul{font-size:12px;line-height:1.9;padding-left:18px;color:#596d54}.mini-badge{font-size:9px;letter-spacing:1px;background:#e8efdd;color:#638047;padding:5px 7px;border-radius:5px}.kbd{font-size:9px;border:1px solid #ced9c4;padding:2px 4px;border-radius:3px}.route-editor{padding:17px}.route-editor h3{margin-bottom:12px}.blanktext{font-size:11px;color:var(--muted);line-height:1.7}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}details{font-size:11px;line-height:1.7}summary{cursor:pointer;font-weight:650;color:#4e6c43}.report-list{padding-left:16px;font-size:11px;line-height:1.9}.caption{font-size:10px;line-height:1.6;color:var(--muted);margin-top:8px}.save-state{font-size:10px;color:#becdb4}.flow-particle{animation:flow 1.4s linear infinite;stroke-dasharray:3 18}@keyframes flow{to{stroke-dashoffset:-42}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
@media(min-width:1550px){.yard svg#scene{height:630px}.app{grid-template-columns:250px minmax(450px,1fr) 315px}.equipment-card{min-height:84px}}
@media(max-width:1180px){.app{grid-template-columns:190px minmax(300px,1fr);padding:0 18px 18px}.rightcol{grid-column:1/-1;grid-template-columns:repeat(3,minmax(0,1fr))}.rightcol>div{align-self:start}.yard svg#scene{height:490px}.equipment-card{padding:7px}.equipment-card .icon{width:46px}.workspace-head{padding:20px}.topbar{padding:16px 20px}.simulation-stats{gap:8px}}
@media(max-width:740px){.topbar{padding:13px 16px;min-height:65px}.brand-name{font-size:19px}.brand-sub{font-size:8px;letter-spacing:1.2px}.topbar .tag,.save-state{display:none}.topbar button{padding:8px 10px;font-size:10px}.workspace-head{display:block;padding:19px 16px 15px}h1{font-size:24px}.tabs{margin-top:16px;width:100%;justify-content:space-between}.tabs button{padding:10px 7px;font-size:11px;flex:1}.app{display:flex;flex-direction:column;padding:0 12px 12px;gap:12px}.library{width:100%;order:2}.maincol{order:1;width:100%}.rightcol{order:3;display:grid;grid-template-columns:1fr;width:100%}.library-cards{grid-template-columns:repeat(3,minmax(0,1fr));padding:9px;gap:6px}.equipment-card{display:block;position:relative;padding:8px;min-height:105px}.equipment-card .icon{width:100%;height:48px;margin-bottom:8px}.equipment-card b{font-size:10px}.equipment-card small{font-size:9px}.equipment-card .plus{position:absolute;right:9px;top:8px}.panel-head{padding:13px 15px}.panel-head h3{font-size:13px}.library-note{font-size:10px;margin:0 13px 12px}.metrics{gap:6px;margin-bottom:9px}.metric{padding:11px 9px}.metric strong{font-size:18px}.metric .label{font-size:8px;letter-spacing:.3px}.metric .hint{font-size:9px}.yard{min-height:325px}.yard svg#scene{height:350px}.yard-top{left:10px;right:10px;top:10px}.chip{font-size:8px;padding:6px 7px}.yard-bottom{bottom:9px;left:10px;right:10px}.yard-help{font-size:9px;max-width:170px}.view-controls button{min-width:31px;padding:7px}.toolbar{flex-wrap:wrap;gap:7px}.toolbar button{font-size:10px;padding:8px 9px}.toolbar .row{gap:5px}.legend{font-size:9px;gap:12px}.foot{display:block;padding:12px 17px 20px;line-height:1.7}.foot .links{margin-top:8px}.simulation-stats{grid-template-columns:repeat(2,1fr);gap:7px}.lesson{padding:18px}.lesson h2{font-size:22px}.stage-list{display:grid;grid-template-columns:1fr 1fr;gap:3px;padding:8px}.stage-btn{padding:8px 5px}.stage-btn b{font-size:10px}.stage-btn small{font-size:8px}.stage-num{width:23px;height:23px}.app.training .library{order:0}.app.training .stage-list{display:flex;overflow-x:auto}.app.training .stage-btn{min-width:155px}.app.training .library .panel-head{display:none}.app.training .library{border-radius:9px}.app.training .stage-list{padding:5px}.app.training .stage-btn small{display:none}}
@media print{.topbar,.library,.toolbar,.view-controls,.foot,.tabs,.rightcol button,.yard-top,.yard-help{display:none!important}.app{display:block}.rightcol{display:grid;grid-template-columns:1fr 1fr;margin-top:20px}.yard{break-inside:avoid}.workspace-head{padding:0 0 20px}.panel{box-shadow:none}.simulation-stats{display:grid}body{background:white}}

/* Farmer Surplus model workspace */
:root{--ink:#172c32;--green:#176046;--lime:#efd27a;--muted:#586c6a;--line:#d7e0dc;font-size:14px}
.topbar{background:#172c32}.brand-name{font-size:23px}.planner-link{font-size:12px;color:#f3d47b;text-decoration:none;border:1px solid #587065;border-radius:8px;padding:13px}.brandmark{color:#f3d47b}.brand-sub{letter-spacing:1.5px}
#threeView{height:560px;position:relative;touch-action:none;background:#e8eee9}#threeView[hidden]{display:none}#threeView canvas{display:block;width:100%;height:100%;touch-action:none}#threeLabels{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.model-label{position:absolute;top:0;left:0;pointer-events:auto;font-size:10px;padding:5px 8px;min-height:28px;background:#ffffffed;box-shadow:0 3px 12px #172c321c;border:1px solid #b8c8bf;white-space:nowrap;max-width:180px;overflow:hidden;text-overflow:ellipsis}.model-label.selected{background:#173e31;color:white;border-color:#efd27a}
.toolbar{flex-wrap:wrap}.toolbar .row{flex-wrap:wrap}.yard-help{padding:7px 10px;background:#f9fbf4ed;border-radius:6px;font-size:11px}.yard-top,.yard-bottom{z-index:3}.simulation-stats{grid-template-columns:repeat(5,1fr)}.simulation-stats .metric{padding:11px 8px}.simulation-stats .metric strong{font-size:18px}
.caption,.library-note,.source,.check small,.metric .hint{font-size:11px}.field label{font-size:11px}.inspector p,.callout,.check,.runstatus{font-size:12px}.topbar a:focus-visible{outline:3px solid #efd27a;outline-offset:3px}
@media(min-width:1550px){#threeView{height:650px}}@media(max-width:1180px){#threeView{height:510px}.simulation-stats{grid-template-columns:repeat(3,1fr)}}@media(max-width:740px){#threeView{height:420px}.topbar{flex-wrap:wrap;gap:12px}.topbar .row{width:100%;justify-content:space-between}.planner-link{min-height:48px;display:flex;align-items:center}.toolbar button,.view-controls button,.tabs button,.stage-btn,.field input,.field select,.connection button{min-height:48px}.view-controls button{min-width:44px}.topbar button{min-height:48px}.yard-help{max-width:170px;font-size:10px}.model-label{font-size:10px;min-height:30px}.brand-name{font-size:21px}.simulation-stats{grid-template-columns:repeat(2,1fr)}.foot{font-size:11px}.foot a{font-size:11px;padding:8px 0}.metric .label{font-size:9px}.toolbar .row{gap:6px}.yard-top{flex-wrap:wrap;gap:4px}}
