:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#20221d;background:#2d302f;font-synthesis:none}*{box-sizing:border-box}html,body,#root{width:100%;min-width:0;min-height:100%;margin:0;overflow-x:hidden}body{min-height:100dvh}button,input{font:inherit}button{color:inherit;cursor:pointer}button:focus-visible,input:focus-visible{outline:3px solid #f2bc45;outline-offset:2px}button:disabled{cursor:not-allowed;opacity:.46}.app-shell{position:relative;width:100%;min-height:100dvh;overflow:hidden;background:#2d302f}.pixel-canvas{display:block;position:absolute;inset:0;width:100%;height:100%;touch-action:none;cursor:grab}.pixel-canvas:active{cursor:grabbing}.topbar{position:absolute;z-index:2;top:max(16px,env(safe-area-inset-top));left:16px;right:16px;display:flex;justify-content:space-between;gap:12px;align-items:flex-start;pointer-events:none}.topbar>*{pointer-events:auto}.brand{display:flex;align-items:center;gap:9px;padding:10px 12px;border:1px solid rgba(255,255,255,.18);border-radius:6px;color:#f6f1df;background:#151711e6;box-shadow:0 4px 18px #00000029}.brand-mark{color:#f2bc45;font-size:1.25rem}.brand strong,.brand small{display:block}.brand small{margin-top:1px;color:#ccd1be;font-size:.72rem}.top-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:7px}.mode-badge{padding:7px 9px;border-radius:3px;background:#e7e1cc;color:#272920;font-size:.78rem;font-weight:750}.mode-badge.place{background:#f2bc45}.text-button,.icon-button{border:0;color:#f6f1df;background:#151711e6}.text-button{padding:8px;text-decoration:underline;text-underline-offset:3px;font-size:.8rem}.icon-button{display:inline-flex;flex:0 0 30px;width:30px;height:30px;align-items:center;justify-content:center;padding:0;border-radius:3px;font-size:1.4rem;line-height:1;text-align:center}.status-strip{position:absolute;z-index:2;top:max(78px,calc(env(safe-area-inset-top) + 64px));left:16px;display:flex;gap:10px;max-width:calc(100% - 32px);color:#edf0e3;font-size:.8rem}.status-strip span{padding:7px 9px;border-radius:3px;background:#151711de}.place-cta{position:absolute;z-index:2;bottom:max(20px,env(safe-area-inset-bottom));left:50%;transform:translate(-50%);min-width:180px;padding:13px 17px;border:0;border-radius:4px;color:#20211d;background:#f2bc45;box-shadow:0 6px 22px #0000004d;font-weight:800}.recover-button{position:absolute;z-index:2;bottom:max(72px,calc(env(safe-area-inset-bottom) + 52px));left:50%;transform:translate(-50%);border:1px solid #e6dfc8;border-radius:3px;padding:8px 10px;color:#f6f1df;background:#151711e8}.inspection{position:absolute;z-index:3;right:16px;bottom:max(18px,env(safe-area-inset-bottom));width:min(240px,calc(100% - 32px));display:grid;gap:4px;padding:13px;border-left:4px solid #f2bc45;color:#f6f1df;background:#252820;box-shadow:0 5px 20px #00000040}.inspection .icon-button{position:absolute;right:5px;top:5px}.inspection strong{margin-top:4px}.center-reticle{position:absolute;z-index:4;width:var(--reticle-size);height:var(--reticle-size);pointer-events:none}.center-reticle i{position:absolute;box-sizing:border-box;width:var(--reticle-corner);height:var(--reticle-corner);border-color:#111612;border-style:solid;filter:drop-shadow(0 0 1px rgba(255,255,255,.98)) drop-shadow(0 0 2px rgba(0,0,0,.45))}.center-reticle i:nth-child(1){top:0;left:0;border-width:var(--reticle-stroke) 0 0 var(--reticle-stroke)}.center-reticle i:nth-child(2){top:0;right:0;border-width:var(--reticle-stroke) var(--reticle-stroke) 0 0}.center-reticle i:nth-child(3){right:0;bottom:0;border-width:0 var(--reticle-stroke) var(--reticle-stroke) 0}.center-reticle i:nth-child(4){bottom:0;left:0;border-width:0 0 var(--reticle-stroke) var(--reticle-stroke)}.center-reticle.inactive{opacity:.35}.placement-tray{position:absolute;z-index:3;left:50%;bottom:max(14px,env(safe-area-inset-bottom));transform:translate(-50%);width:min(680px,calc(100% - 24px));padding:12px;border:1px solid #35392e;border-radius:6px;color:#20221d;background:#f6f1df;box-shadow:0 10px 28px #00000059}.tray-heading{display:flex;justify-content:space-between;gap:8px;align-items:start}.tray-heading .text-button{color:#384334;background:transparent}.eyebrow{display:block;color:#66705f;font-size:.68rem;letter-spacing:.09em;text-transform:uppercase}.palette{display:flex;flex-wrap:wrap;gap:7px;margin:10px 0}.color-swatch{display:grid;width:28px;height:28px;place-items:center;border:2px solid rgba(0,0,0,.14);border-radius:3px;color:#fff;background:var(--swatch);text-shadow:0 1px 2px #000;font-size:.78rem}.color-swatch.selected{outline:3px solid #20221d;outline-offset:2px}.target-row,.row-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.target-row{min-height:34px;font-size:.86rem}.target-row button,.row-actions button,.dialog button,.owner-desk button{border:1px solid #777d70;border-radius:3px;padding:8px 10px;background:#fffdf5}.target-row button{margin-left:auto}.selected-color{width:18px;height:18px;border:1px solid rgba(0,0,0,.4);border-radius:50%}.row-actions{margin-top:10px}.row-actions .primary,.primary{color:#1d211a;border-color:#d6a438;background:#f2bc45;font-weight:800}.toast{position:absolute;z-index:5;left:50%;bottom:max(90px,calc(env(safe-area-inset-bottom) + 70px));transform:translate(-50%);display:flex;align-items:center;gap:10px;width:min(480px,calc(100% - 28px));padding:10px;border-radius:4px;color:#f7f3e5;background:#2e4434;box-shadow:0 5px 22px #0000004d;font-size:.86rem}.toast.error{background:#7b342e}.toast button:not(.icon-button){margin-left:auto;border:1px solid currentColor;padding:5px 6px;color:inherit;background:transparent}.toast .icon-button{margin-left:auto;background:transparent}.dialog-backdrop{position:fixed;z-index:10;inset:0;display:grid;place-items:center;padding:18px;background:#0a0c09a3}.dialog{width:min(480px,100%);padding:20px;border-radius:5px;color:#242720;background:#f6f1df;box-shadow:0 18px 60px #00000061}.dialog p{line-height:1.48}.how-it-works h3{margin:18px 0 3px;color:#364332;font-size:1rem}.how-it-works h3:first-child{margin-top:8px}.how-it-works p{margin:0}.how-it-works .help-note{margin-top:20px;color:#5b6555;font-size:.9rem;font-style:italic}.panel-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.panel-heading h2{margin:0;font-size:1.25rem}.panel-heading .icon-button{color:#293025;background:transparent}.dialog label,.stack label{display:grid;gap:5px;margin:12px 0;font-size:.86rem;font-weight:700}.dialog input,.stack input{width:100%;padding:9px;border:1px solid #899080;border-radius:3px;color:#20221d;background:#fffdf5}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}.lock-code{margin:18px 0;padding:14px;border:2px dashed #7b815f;border-radius:3px;color:#28352b;background:#e5e9d5;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:1.8rem;font-weight:800;letter-spacing:.1em;text-align:center}.owner-desk{position:fixed;z-index:11;top:0;right:0;bottom:0;width:min(560px,100%);padding:max(18px,env(safe-area-inset-top)) 18px max(18px,env(safe-area-inset-bottom));overflow-y:auto;color:#22261f;background:#f6f1df;box-shadow:-12px 0 40px #00000059}.owner-desk p{line-height:1.45}.stack{display:grid;gap:4px}.compact{gap:0}.owner-content{display:grid;gap:17px;margin-top:16px}.owner-summary{display:flex;gap:8px;flex-wrap:wrap}.owner-summary span{padding:6px 8px;border-radius:3px;background:#e1e4d5;font-size:.8rem}.owner-section{padding-top:14px;border-top:1px solid #d6d6c7}.owner-section h3{margin:0 0 8px;font-size:1rem}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.batch-list{display:grid;max-height:270px;overflow-y:auto;border:1px solid #d0d2c3}.batch-row{display:flex;justify-content:space-between;gap:10px;padding:9px;border:0;border-bottom:1px solid #dedfce;color:#252720;background:#fffdf5;text-align:left;font-size:.8rem}.batch-row.selected{background:#e9e4c8}.batch-row small{display:block;color:#646b5e}.batch-preview{display:grid;gap:8px;margin-top:10px;padding:10px;border-left:3px solid #5b7e4e;background:#e8eadb}.batch-preview p{margin:0}.batch-preview code{display:block;max-height:58px;overflow-y:auto;font-size:.72rem;overflow-wrap:anywhere}.notice{padding:8px;color:#2f5a3d;background:#e2efdf}.error-text{color:#9d3028;font-weight:650}.setup-screen{display:grid;min-height:100dvh;place-items:center;padding:24px;color:#f6f1df;background:#151711}.setup-screen>div{width:min(520px,100%)}.setup-screen h1{margin:8px 0;font-size:clamp(2rem,7vw,3.8rem);line-height:1}.setup-screen p{color:#ced3c2;line-height:1.5}.setup-screen code{padding:2px 4px;color:#f2bc45;background:#242820}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.owner-route-shell{min-height:100dvh;background:#2d302f}.owner-route-shell .owner-desk{right:auto;left:50%;width:min(640px,100%);transform:translate(-50%);box-shadow:0 0 40px #00000059}@media(max-width:620px){.topbar{right:10px;left:10px}.top-actions{max-width:170px;gap:2px}.top-actions .text-button{padding:6px 3px;font-size:.72rem}.brand{padding:8px}.status-strip{top:max(68px,calc(env(safe-area-inset-top) + 58px));left:10px}.status-strip span:last-child{display:none}.placement-tray{width:calc(100% - 12px);bottom:max(6px,env(safe-area-inset-bottom))}.palette{gap:6px}.color-swatch{width:26px;height:26px}.target-row button{margin-left:0}.toast{bottom:202px}.inspection{bottom:82px;right:10px}.dialog{padding:17px}.batch-row{display:grid}.recover-button{bottom:76px}}.stack select,.stack textarea{width:100%;padding:9px;border:1px solid #899080;border-radius:3px;color:#20221d;background:#fffdf5}.stack textarea{resize:vertical}.field-hint{margin:-4px 0 8px;color:#66705f;font-size:.78rem;line-height:1.35}.completion-reward{margin:18px 0;text-align:center}.reward-heading{display:block;color:#53604f;font-size:.72rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.reward-value{margin:9px 0}.reward-coordinates{padding:14px;border:2px dashed #7b815f;border-radius:3px;color:#28352b;background:#e5e9d5;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:clamp(1.25rem,5vw,1.7rem);font-weight:800;line-height:1.45;letter-spacing:.02em}.reward-message{margin:10px 0;padding:13px;border-left:4px solid #f2bc45;color:#28352b;background:#e5e9d5;font-size:1.1rem;font-weight:700;line-height:1.45;text-align:left;white-space:pre-wrap}.copy-button{padding:6px 10px;border:1px solid #777d70;border-radius:3px;color:#293025;background:#fffdf5;font-weight:700}
