:root{--paper: #f6f1e7;--card: #fffdf8;--ink: #2b2620;--muted: #7a7064;--line: #e2d9c8;--accent: #7a4b1e;--who: #2f6f8f;--action: #8a5a12;--when: #5d6b2f;--form: #6b3f7a;--ration: #8f3b3b;--bad: #b5452f;--warn: #c98a1c;--ok: #5b8a4a;font-family:Georgia,Iowan Old Style,Palatino Linotype,serif;color:var(--ink);background:var(--paper)}*{box-sizing:border-box}body{margin:0;min-height:100vh;display:flex;flex-direction:column}button{font:inherit;cursor:pointer;border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:6px;padding:4px 10px}button:hover:not(:disabled){border-color:var(--accent)}button:disabled{opacity:.5;cursor:not-allowed}button.primary{background:var(--accent);color:#fff;border-color:var(--accent)}button.link{border:none;background:none;text-decoration:underline;padding:0;color:var(--muted)}h2{margin:0 0 8px;font-size:1.3rem}h3{margin:16px 0 6px;font-size:1rem;color:var(--accent)}.muted{color:var(--muted)}.small{font-size:.85rem}#top{display:flex;align-items:center;gap:18px;padding:8px 16px;background:var(--card);border-bottom:1px solid var(--line);flex-wrap:wrap;position:sticky;top:0;z-index:2}.brand{font-weight:700;font-size:1.2rem;letter-spacing:.04em;color:var(--accent)}.time{display:flex;flex-direction:column;gap:3px;min-width:140px}.clock{font-variant-numeric:tabular-nums}.hour-bar{display:block;height:3px;background:var(--line);border-radius:2px;overflow:hidden}.hour-bar span{display:block;height:100%;background:var(--accent);width:0;transition:width .25s linear}.stats{display:flex;gap:14px;flex-wrap:wrap;align-items:center;flex:1}.stat{display:flex;flex-direction:column;line-height:1.1;cursor:help}.stat-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.stat-value{font-size:1.1rem;font-variant-numeric:tabular-nums}.alert{color:var(--bad);font-size:.85rem;border:1px solid var(--bad);border-radius:4px;padding:2px 6px}.controls{display:flex;gap:6px}.speed.on{background:var(--ink);color:var(--paper);border-color:var(--ink)}.layout{flex:1;display:grid;grid-template-columns:minmax(0,1.3fr) minmax(360px,1fr);gap:16px;padding:16px;align-items:start}@media(max-width:900px){.layout{grid-template-columns:1fr}}footer{padding:8px 16px}.square{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px}.place{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:8px 10px;min-height:90px}.place header{margin-bottom:6px;font-size:.95rem}.people{display:flex;flex-direction:column;gap:4px}.empty{font-size:.85rem;font-style:italic}.chip{display:grid;grid-template-columns:12px 1fr auto;grid-template-rows:auto auto;column-gap:6px;align-items:center;text-align:left;padding:4px 6px;border-radius:6px;transition:opacity .15s,box-shadow .15s}.chip .dot{grid-row:1 / 3}.chip .name{font-weight:700;font-size:.9rem}.chip .doing{font-size:.75rem;color:var(--muted);text-align:right}.chip .pips{grid-column:2 / 4;display:flex;gap:3px}.chip.lit{box-shadow:0 0 0 2px var(--who);background:#eef6fa}.chip.dim{opacity:.35}.chip.selected{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent)}.dot{display:inline-block;width:12px;height:12px;border-radius:50%}.dot.big{width:28px;height:28px}.pip{flex:1;height:4px;background:var(--line);border-radius:2px;overflow:hidden}.pip span,.bar span{display:block;height:100%;background:var(--ok)}.pip.warn span,.bar.warn span{background:var(--warn)}.pip.bad span,.bar.bad span{background:var(--bad)}#side{position:sticky;top:70px;max-height:calc(100vh - 90px);overflow:auto}.tabs{display:flex;gap:4px;margin-bottom:8px}.tab.on{background:var(--ink);color:var(--paper);border-color:var(--ink)}.panel{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:14px}.citizen-head{display:flex;gap:10px;align-items:center;margin-bottom:10px}.citizen-head div{flex:1}.citizen-head p{margin:0}.close{font-size:1.2rem;line-height:1;padding:2px 8px}.needs{display:grid;gap:4px}.need{display:grid;grid-template-columns:70px 1fr 32px;gap:8px;align-items:center;font-size:.85rem}.bar{height:8px;background:var(--line);border-radius:4px;overflow:hidden}.need-value{text-align:right;font-variant-numeric:tabular-nums}.trace{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px}.trace li{display:grid;grid-template-columns:96px 1fr;gap:8px;font-size:.92rem;line-height:1.35;border-bottom:1px dotted var(--line);padding-bottom:5px}.trace .when{color:var(--muted);font-size:.8rem;font-variant-numeric:tabular-nums;padding-top:2px}.f-constraint,.f-supply{color:var(--bad)}.f-obligation{color:var(--form)}.f-gap{color:var(--who);font-style:italic}.f-desperate{color:var(--bad);font-weight:700}.f-choice{font-weight:700}.sentence{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:14px 10px;border:2px dashed var(--line);border-radius:8px;min-height:56px;background:var(--paper)}.slot{padding:5px 10px;border-radius:6px;border:2px dashed var(--muted);color:var(--muted);font-style:italic;cursor:default;transition:background .1s,border-color .1s}.slot.filled{border-style:solid;font-style:normal;color:var(--ink);background:var(--card);cursor:pointer}.slot.optional.empty{opacity:.7}.slot.over{background:#fff3d6;border-color:var(--accent)}.slot.s-who.filled{border-color:var(--who)}.slot.s-action.filled{border-color:var(--action)}.slot.s-time.filled,.slot.s-cond.filled{border-color:var(--when)}.slot.s-form.filled{border-color:var(--form)}.slot.s-resource.filled,.slot.s-n.filled{border-color:var(--ration)}body.dragging-who .slot.s-who.empty,body.dragging-action .slot.s-action.empty,body.dragging-time .slot.s-time,body.dragging-cond .slot.s-cond,body.dragging-form .slot.s-form,body.dragging-resource .slot.s-resource,body.dragging-n .slot.s-n{border-color:var(--accent);background:#fff8e8}.fixed{color:var(--ink)}.threshold{font:inherit;padding:1px 2px}.preview{margin:10px 0;min-height:60px}.preview p{margin:4px 0}.draft-sentence{font-size:1.1rem}.refusal{color:var(--bad)}.actions{display:flex;gap:6px;margin-top:6px}.palette{display:flex;flex-direction:column;gap:8px;margin-top:8px}.palette-group{display:flex;flex-wrap:wrap;gap:5px;align-items:center}.palette-title{width:58px;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.word{padding:4px 9px;border-radius:6px;color:#fff;cursor:grab;-webkit-user-select:none;user-select:none;font-size:.92rem}.word:active{cursor:grabbing}.word:focus-visible{outline:2px solid var(--ink)}.w-who{background:var(--who)}.w-action{background:var(--action)}.w-time,.w-cond{background:var(--when)}.w-form{background:var(--form)}.w-resource,.w-n{background:var(--ration)}.word[title]:not([title=""]){box-shadow:inset 0 -3px #ffffff59}.laws{display:flex;flex-direction:column;gap:6px}.law-card{display:grid;grid-template-columns:1fr auto;gap:2px 8px;padding:8px 10px;border:1px solid var(--line);border-radius:6px;background:var(--paper)}.law-card .repeal{grid-row:1 / 4;grid-column:2;align-self:center}.law-idle{color:var(--warn)}.face{font-size:1.05rem}.totals{border-collapse:collapse}.totals th{text-align:left;font-weight:400;color:var(--muted);padding:2px 16px 2px 0}.totals td{padding:2px 10px 2px 0;font-variant-numeric:tabular-nums}.totals .delta{color:var(--muted)}.milestones{padding-left:18px}.milestones li{color:var(--muted);margin:2px 0}.milestones li.reached{color:var(--ink)}.milestones li.reached::marker{content:"✓ ";color:var(--ok)}#overlay:empty{display:none}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#2b262073;display:flex;align-items:center;justify-content:center;z-index:10;padding:16px}.ledger-card{background:var(--card);border-radius:10px;padding:22px 26px;max-width:520px;width:100%;box-shadow:0 10px 40px #00000040}.ledger-card p{line-height:1.45}.notable{padding-left:18px;line-height:1.5}.ledger-card button.primary{margin-top:12px}
