:root{--bg:#0c121c;--paper:#e8f0e4;--brass:#e3b23c;--ink:#d7e4dc;--panel:#0c121ce0;--board:#0c121cf0;--line:#e3b23c59;--energy:#e3b23c;--farm:#7dcf7a;--ship:#6ec8d6;--danger:#ef7a5a;--sa-t:env(safe-area-inset-top,0px);--sa-b:env(safe-area-inset-bottom,0px);--action-h:56px}*{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--bg);touch-action:manipulation;-webkit-user-select:none;user-select:none;height:100dvh;color:var(--ink);font-family:PingFang SC,Hiragino Sans GB,system-ui,sans-serif;overflow:hidden}#c,#harbor{width:100%;height:100%;display:block;position:fixed;inset:0}#harbor{z-index:0;pointer-events:none;opacity:.9}#c{z-index:1;opacity:1}body.art-ready #harbor{opacity:0}body.art-fallback #harbor{opacity:.9}#app{z-index:2;padding:calc(6px + var(--sa-t)) 8px 0;pointer-events:none;grid-template-rows:auto minmax(0,1fr) auto;grid-template-areas:"top""stage""act";gap:6px;width:100%;min-width:0;max-width:100%;min-height:0;display:grid;position:fixed;inset:0}#app>*{pointer-events:auto}#topbar{background:var(--board);border:1px solid var(--line);border-radius:8px;flex-wrap:wrap;grid-area:top;align-items:center;gap:8px;min-width:0;min-height:44px;padding:4px 10px;display:flex;overflow:hidden}#title{letter-spacing:.14em;color:var(--paper);font-size:16px;font-weight:700}#badge{border:1px solid var(--brass);color:var(--brass);border-radius:4px;padding:2px 6px;font-size:11px}#round,#quota{color:var(--brass);font-size:13px}#crisis{opacity:.85;white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:12px;overflow:hidden}#stage{grid-template:"p1 p2 p3 ed"minmax(120px,1fr)"spot fut fut ed"minmax(72px,92px)/minmax(0,1fr) minmax(0,1fr) minmax(0,1fr) minmax(220px,34%);grid-area:stage;gap:6px;min-width:0;min-height:0;display:grid;overflow:auto}#parties,#bands{display:contents}.party{background:var(--board);border:1px solid var(--line);border-radius:8px;min-width:0;min-height:0;padding:8px 10px;overflow:auto}.party[data-party=energy]{border-color:#e3b23c8c;grid-area:p1}.party[data-party=farm]{border-color:#7dcf7a8c;grid-area:p2}.party[data-party=shipping]{border-color:#6ec8d68c;grid-area:p3}.party h2{color:var(--paper);align-items:center;gap:8px;margin-bottom:6px;font-size:15px;display:flex}.emblem,.res-ico{object-fit:contain;image-rendering:auto;flex:none;width:40px;height:40px}.res-ico{width:24px;height:24px}.gaps{flex-direction:column;gap:4px;margin-bottom:6px;display:flex}.gap-block{border:1px solid var(--line);background:#080c12b8;border-radius:6px;flex-wrap:wrap;align-items:baseline;gap:6px 10px;min-width:0;padding:6px 8px;display:flex}.gap-k{opacity:.8;font-size:11px}.gap-block strong{color:var(--paper);font-size:16px;font-weight:700}.gap-sub{color:var(--ink);font-size:12px}.gap-block.ok strong{color:#7dcf7a}.gap-block.bad strong{color:var(--danger)}.party .need{opacity:.9;margin-bottom:4px;font-size:12px;line-height:1.4}.party .reply{min-height:18px;color:var(--paper);overflow-wrap:anywhere;margin-bottom:4px;font-size:12px;line-height:1.4}.party .reply.accept{color:#7dcf7a}.party .reply.reject{color:var(--danger)}.party .reply.pending{color:var(--brass)}.party-details{margin-top:2px}.party-details summary{cursor:pointer;min-height:44px;color:var(--brass);align-items:center;font-size:13px;list-style:none;display:flex}.party-details summary::-webkit-details-marker{display:none}.party .stocks{flex-wrap:wrap;gap:6px 10px;font-size:13px;list-style:none;display:flex}.party .stocks li{align-items:center;gap:4px;display:flex}.party .stocks b{color:var(--paper)}#spot{grid-area:spot}#ledger{grid-area:fut}#spot,#ledger{background:var(--board);border:1px solid var(--line);border-radius:8px;min-width:0;min-height:72px;padding:6px 10px;overflow:auto}#spot h3,#ledger h3{color:var(--brass);align-items:center;gap:6px;margin-bottom:4px;font-size:12px;display:flex}#spot p,#ledger li{overflow-wrap:anywhere;font-size:12px;line-height:1.4}#ledger-body{list-style:none}#desk{background:var(--board);border:1px solid var(--line);border-radius:8px;flex-direction:column;grid-area:ed;gap:4px;min-width:0;min-height:0;padding:6px;display:flex;overflow:hidden}.desk-head{flex:none;align-items:center;gap:8px;display:flex}.desk-head h2{color:var(--paper);flex:1;font-size:14px}#desk-scroll{flex-direction:column;flex:auto;gap:8px;min-height:0;padding-bottom:8px;display:flex;overflow:auto}#btn-drawer{min-width:44px;min-height:44px;padding:0 10px;font-size:13px}#app.drawer-collapsed #stage{grid-template-columns:1fr 1fr 1fr;grid-template-areas:"p1 p2 p3""spot fut fut"}#app.drawer-collapsed #desk,#app.settled #desk{display:none}#app.settled #summary{display:flex}#app.settled #stage{grid-template-areas:"p1 p2 p3 sum""spot fut fut sum"}#trades{grid-template-columns:1fr;gap:6px;display:grid}.trade-card{border:1px solid var(--line);background:#080c128c;border-radius:8px;flex-direction:column;gap:6px;min-width:0;padding:8px;display:flex}.trade-card.in-draft{border-color:var(--brass)}.trade-card h3{color:var(--paper);overflow-wrap:anywhere;font-size:13px}.trade-who{opacity:.86;overflow-wrap:anywhere;font-size:11px;line-height:1.35}.trade-fields{flex-wrap:wrap;gap:6px;display:flex}.trade-fields label{flex-direction:column;flex:72px;align-items:stretch;gap:2px;min-width:0;font-size:12px;display:flex}#clause-form label{align-items:center;gap:4px;font-size:12px;display:flex}.trade-fields input,#clause-form select,#clause-form input{width:100%;min-width:0;height:44px;color:var(--paper);border:1px solid var(--line);background:#0e1620;border-radius:6px;padding:0 6px;font-size:14px}#clause-form select,#clause-form input{width:auto;min-width:56px;max-width:96px}.trade-ops{gap:6px;display:flex}.trade-ops button{flex:1}.trade-card.pay h3{color:var(--brass)}#advanced{border:1px dashed var(--line);background:#080c1266;border-radius:8px;padding:4px 8px}#advanced summary{cursor:pointer;min-height:44px;color:var(--brass);align-items:center;font-size:13px;display:flex}#tpls{grid-template-columns:1fr 1fr;gap:6px;margin-bottom:6px;display:grid}button{min-width:44px;min-height:44px;color:var(--paper);cursor:pointer;white-space:normal;background:#1b2836;border:1px solid #e8f0e440;border-radius:8px;padding:4px 8px;font-size:13px;line-height:1.2}button:hover,button.active{border-color:var(--brass);color:var(--brass)}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid var(--brass);outline-offset:2px}button:disabled{opacity:.55;cursor:not-allowed}#btn-exec{background:#2a4a38}#btn-submit{background:#3a3420}#btn-replay{background:#3a3420;grid-column:1/-1}#clause-form{flex-wrap:wrap;align-items:center;gap:6px;font-size:12px;display:flex}#clause-form.haul .ex,#clause-form.subsidy .ex,#clause-form.berth .ex,#clause-form.exchange .amt,#clause-form.exchange .br,#clause-form.haul .br,#clause-form.subsidy .br,#clause-form.berth .amt{display:none}#draft,#replies,#preview{font-size:12px;line-height:1.4}#draft{flex-direction:column;gap:4px;list-style:none;display:flex}#draft li{overflow-wrap:anywhere;background:#080c1280;border-radius:6px;align-items:center;gap:6px;padding:4px 6px;display:flex}#draft .draft-label{flex:1;min-width:0}#preview{flex-direction:column;gap:6px;display:flex}.preview-party,.preview-cost{border:1px solid var(--line);overflow-wrap:anywhere;background:#080c128c;border-radius:6px;padding:6px 8px}.preview-party h4,.preview-cost h4{color:var(--brass);margin-bottom:2px;font-size:12px}.preview-cost.compare{grid-template-columns:1fr;gap:6px;display:grid}.preview-cost.compare p{min-width:0}#replies{flex-direction:column;gap:4px;display:flex}.counter-diff{color:var(--paper)}.reply-history{color:var(--ink)}.reply-history summary{cursor:pointer;min-height:44px;color:var(--brass);align-items:center;font-size:13px;list-style:none;display:flex}.reply-history summary::-webkit-details-marker{display:none}#replies div{overflow-wrap:anywhere}#reason{border:1px solid var(--danger);color:#ffe8dc;overflow-wrap:anywhere;background:#501812e0;border-radius:8px;min-height:44px;padding:8px 10px;font-size:13px;line-height:1.4;overflow:auto}#outcome{border:1px solid var(--danger);color:#ffe8dc;border-radius:4px;padding:2px 8px;font-size:13px;font-weight:700}#outcome.ok{color:#e8ffe8;border-color:#7dcf7a}#reason[hidden]{display:none}#reason.ok{color:#e8ffe8;background:#124028e0;border-color:#7dcf7a}#actions{padding:6px 0 calc(8px + var(--sa-b));background:var(--board);border-top:1px solid var(--line);z-index:5;grid-area:act;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;width:100%;min-width:0;max-width:100%;display:grid}#app.settled #btn-submit,#app.settled #btn-counter,#app.settled #btn-exec,#app.settled #btn-next,#app.settled #btn-drawer{display:none}#summary{background:var(--board);border:1px solid var(--line);border-radius:8px;flex-direction:column;grid-area:sum;gap:8px;min-width:0;padding:10px;display:none;overflow:auto}#summary h2{color:var(--paper);font-size:16px}#summary-result{color:var(--brass);overflow-wrap:anywhere;font-size:14px;line-height:1.4}#summary-facts{flex-direction:column;gap:6px;list-style:none;display:flex}#summary-facts li{overflow-wrap:anywhere;background:#080c128c;border-radius:6px;padding:6px 8px}#summary-facts strong{color:var(--brass);margin-bottom:2px;font-size:12px;display:block}#summary-log{opacity:.9;padding-left:18px;font-size:12px}.summary-note{opacity:.75;font-size:11px}#hint{z-index:3;right:12px;top:calc(8px + var(--sa-t));opacity:0;pointer-events:none;font-size:11px;position:fixed}#cta{z-index:4;color:#fff6e4;pointer-events:none;background:linear-gradient(#0000 30%,#0c080ed1 100%);justify-content:center;align-items:flex-end;padding-bottom:88px;font-size:42px;font-weight:800;display:flex;position:fixed;inset:0}#cta[hidden]{display:none}@media (width<=720px),(aspect-ratio<=3/4){#crisis{display:none}#stage{flex-direction:column;align-items:stretch;min-width:0;display:flex;overflow:auto}.party,#spot,#ledger,#desk,#summary{flex:none;grid-area:auto;width:100%;min-width:0;max-width:100%}.party{height:auto;min-height:0;overflow:visible}#trades,.preview-cost.compare{grid-template-columns:1fr}#actions{grid-template-columns:minmax(0,1fr) minmax(0,1fr);width:100%;max-width:100%}#btn-next{grid-column:1/-1}#desk{min-height:auto;overflow:visible}#desk-scroll{overflow:visible}}@media (width>=1100px) and (aspect-ratio>=3/4){#trades,.preview-cost.compare{grid-template-columns:1fr 1fr}}@media (height<=420px) and (aspect-ratio>=3/4){.gap-block strong{font-size:14px}}
