:root{color-scheme:light;--paper:#f2eddf;--white:#fffaf0;--ink:#2d352e;--muted:#72776b;--accent:#d76840;--green:#628574;--art-accent:#e5b783;font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;color:var(--ink);background:var(--paper)}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;overscroll-behavior:none}body{background-image:radial-gradient(#575b4625 .7px,transparent .7px);background-size:7px 7px;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;touch-action:manipulation}h1,h2,p{margin:0}button{font:inherit;color:inherit;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;min-height:44px}button:focus-visible{outline:3px solid var(--accent);outline-offset:3px}[hidden]{display:none!important}.shell{width:min(100%,460px);height:100vh;height:100dvh;margin:auto;padding:max(12px,env(safe-area-inset-top)) max(14px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left));display:flex;flex-direction:column;gap:10px}
header{display:flex;align-items:center;justify-content:space-between;border-bottom:2px solid var(--ink);padding-bottom:10px;flex-shrink:0}h1{font-size:31px;letter-spacing:-1.8px;font-weight:900;line-height:1.1}h1 span,h1 i{color:var(--accent);font-style:normal}header p{font-size:9px;letter-spacing:1.8px;color:var(--muted);margin-top:6px}.stamp{border:1.5px solid #a85135;transform:rotate(6deg);padding:5px 10px;font-size:10px;line-height:1.65;color:#a85135;text-align:center}.stamp b{font-size:11px;letter-spacing:1px}.scorebar{display:flex;justify-content:space-between;align-items:center;flex-shrink:0}#stages{display:flex;gap:5px;font-size:10px;font-weight:700}#stages span{padding:5px 6px;border:1px solid #b9bdac;color:#919680;border-radius:3px}.current{background:#647b5d!important;color:#fffaf0!important;border-color:#465b42!important}.done{background:#dde6d1;color:#506248!important}.score{display:flex;align-items:baseline;gap:8px}.score small{font-size:9px;color:var(--muted)}.score b{font-size:23px;letter-spacing:-1px;font-variant-numeric:tabular-nums}
.boss-zone{height:147px;flex-shrink:0;position:relative;background:#e5e7d8;border:1.5px solid #949b84;border-radius:6px;overflow:hidden}.office-window{position:absolute;left:16px;top:14px;width:56px;height:54px;border:2px solid #b7c0a9;background:linear-gradient(90deg,transparent 48%,#b7c0a9 48%,#b7c0a9 52%,transparent 52%),linear-gradient(transparent 48%,#b7c0a9 48%,#b7c0a9 52%,transparent 52%),#edf0e5;transform:skewY(-4deg)}#boss-art{position:absolute;left:-15px;bottom:30px;width:160px;height:130px;pointer-events:none}.boss-copy{position:absolute;left:132px;top:18px;right:12px}.boss-name{display:flex;align-items:center;gap:8px}.boss-name>b{font-size:17px}.boss-name span{font-size:9px;color:#7b806b}#speech{font-size:12px;line-height:1.6;padding:8px 10px;border:1px solid #b6b69b;border-radius:5px;background:var(--white);margin-top:8px;min-height:47px;display:flex;align-items:center}.dispatch{position:absolute;left:12px;right:12px;bottom:10px}.dispatch>div:first-child{display:flex;justify-content:space-between;align-items:center;font-size:10px;margin-bottom:5px}.dispatch strong{font-variant-numeric:tabular-nums;font-size:16px}.dispatch small{font-size:9px;font-weight:400}.track{height:6px;border:1px solid #7e886d;border-radius:2px;background:#d3d8c3;overflow:hidden}.track i{display:block;height:100%;width:100%;background:#6d8e6d;transform-origin:left}.warning{border-color:#b9603e;background:#eee1cd}.warning .track i{background:#c46240}.warning #dispatch-label,.warning #countdown{color:#a84930}#new-work{position:absolute;right:13px;bottom:47px;font-size:11px;font-weight:800;background:#a84930;color:#fff6dd;padding:5px 8px;border-radius:3px;transform:rotate(-3deg);pointer-events:none}
.desk{position:relative;flex:1;min-height:160px;border:2px solid #414b37;border-radius:8px;background-color:#e4e7d6;background-image:linear-gradient(#8f9a7515 1px,transparent 1px),linear-gradient(90deg,#8f9a7515 1px,transparent 1px);background-size:28px 28px;box-shadow:3px 4px 0 #62694f;overflow:hidden}.desk-heading{position:absolute;top:10px;left:10px;right:10px;display:flex;justify-content:space-between;align-items:center;font-size:10px;color:#717a61}.desk-heading b{color:var(--ink);font-variant-numeric:tabular-nums}#table-status{font-size:9px}.sprint #table-status{color:#9d4b32;font-weight:800}.sprint{border-color:#9b6b43}#board{position:absolute;left:10px;right:10px;top:40px;bottom:32px}.card{position:absolute;width:calc((100% - 24px)/5);height:72px;border:1.5px solid #52644b;border-radius:5px;background:var(--tile-bg);padding:0;color:var(--ink);box-shadow:0 4px 0 #52644b;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;transition:filter .15s,box-shadow .15s;isolation:isolate}.card svg{width:36px;height:37px;flex-shrink:0;pointer-events:none}.card .name{font-size:11px;font-weight:800;pointer-events:none}.card .tab{position:absolute;top:2px;left:4px;font-size:8px;font-weight:700;opacity:.6;pointer-events:none}.card.available{border:2px solid #4c694b;box-shadow:0 4px 0 #4c694b,0 0 0 2px #fff9e5}.card.available:active{filter:brightness(1.15)}.card.blocked{filter:brightness(.76) saturate(.65);box-shadow:0 2px 0 #6b735a;border-color:#77816a;cursor:not-allowed}.card.blocked svg{opacity:.65}.card.blocked .name{opacity:.65}.buried{position:absolute;top:-13px;font-size:8px;color:#687158;pointer-events:none;width:calc((100% - 24px)/5);text-align:center}.desk-foot{position:absolute;bottom:9px;left:10px;right:10px;font-size:9px;color:#7c846b;display:flex;justify-content:space-between}.desk-foot b{color:#a5672d}#flight-layer{position:absolute;inset:0;pointer-events:none;z-index:999}.new-paper{position:absolute;top:-75px;width:44px;height:55px;border:1.5px solid #697657;border-radius:4px;background:#fff6de;display:grid;place-items:center;animation:fall .48s ease-in both}.new-paper svg{width:32px;height:34px}.fly{position:fixed;z-index:50;pointer-events:none;margin:0}.pop{position:fixed;z-index:60;pointer-events:none;color:#567247;font-weight:900;font-size:20px;animation:pop .55s ease-out forwards}.shake{animation:shake .22s linear}
.tray-zone{flex-shrink:0;padding-top:5px}.tray-heading{display:flex;justify-content:space-between;align-items:center;font-size:10px;margin-bottom:8px}.tray-heading b span{font-weight:400;color:var(--muted);margin-left:5px}#feedback{font-size:10px;color:#75815f}.tray{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;padding:7px;background:#cbd1bc;border:1.5px solid #727d62;border-radius:6px;box-shadow:inset 0 2px 3px #424b3520}.slot{height:53px;border:1px dashed #a0a88d;border-radius:4px;background:#e0e4d3;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center}.slot .slot-no{font-size:9px;color:#a2aa91}.slot.filled{border:1.5px solid #6d775f;background:var(--tile-bg);box-shadow:0 2px 0 #8d9878}.slot svg{width:29px;height:30px}.slot .name{font-size:9px;font-weight:700}.tray.danger{border-color:#b65b40;background:#d7b8a3}.tray-zone>p{height:30px;display:flex;align-items:center;justify-content:center;margin-top:8px;font-size:11px;text-align:center;line-height:1.4;color:#627154}footer{display:flex;align-items:center;justify-content:space-between;flex-shrink:0;height:32px;color:#8c917d;font-size:9px;letter-spacing:1px}footer button{border:0;background:transparent;color:#69765b;font-size:11px;padding:0 10px;min-height:32px}
.overlay{position:fixed;inset:0;background:#2d352e88;display:flex;align-items:center;justify-content:center;padding:18px;z-index:100;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.panel{width:min(100%,370px);max-height:100%;overflow:auto;background:var(--white);border:2px solid var(--ink);border-radius:9px;box-shadow:5px 7px 0 #2d352e55;padding:24px 22px;text-align:center;touch-action:pan-y}.eyebrow{font-size:10px;letter-spacing:2px;color:#8a7656;font-weight:700;margin-bottom:10px}.panel h2{font-size:29px;font-weight:900;letter-spacing:-1px}.panel p.intro{font-size:12px;line-height:1.8;color:#727760;margin:13px 0}.primary{width:100%;background:var(--accent);border:2px solid #813e29;color:#fff8e8;border-radius:5px;font-size:15px;font-weight:800;box-shadow:0 3px 0 #813e29;min-height:48px;margin-top:16px}.secondary{background:none;border:1px solid #b3b79f;border-radius:5px;font-size:12px;padding:0 18px;margin-top:10px}.score-total{border-top:1px dashed #9a9e88;border-bottom:1px dashed #9a9e88;margin:17px 0;padding:12px}.score-total small{display:block;font-size:10px;color:#7d826d}.score-total strong{font-size:40px;line-height:1.3;color:#98652e}.stats{display:grid;grid-template-columns:1fr 1fr;gap:12px 18px;text-align:left}.stats div{display:flex;justify-content:space-between;font-size:11px;color:#6c735e}.stats b{color:var(--ink)}.mini-cards{display:flex;justify-content:center;gap:9px;margin:20px 0}.mini-cards>div{background:#e1eee8;padding:8px;border:1.5px solid #63806c;border-radius:4px;box-shadow:0 3px 0 #63806c}.mini-cards svg{display:block;width:38px;height:40px}.fine{font-size:10px;color:#969982;line-height:1.6;margin-top:12px}
@keyframes fall{from{transform:translateY(-10px) rotate(-14deg);opacity:.2}to{transform:translateY(135px) rotate(5deg);opacity:1}}@keyframes pop{to{transform:translateY(-40px) scale(1.1);opacity:0}}@keyframes shake{25%,75%{transform:translateX(-3px)}50%{transform:translateX(3px)}}
@media(max-height:700px){.shell{gap:7px;padding-top:max(7px,env(safe-area-inset-top))}header{padding-bottom:7px}h1{font-size:26px}header p{font-size:8px;margin-top:4px}.stamp{padding:3px 8px;font-size:9px}.boss-zone{height:125px}.boss-copy{left:115px;top:10px}.boss-name>b{font-size:15px}.boss-name span{font-size:8px}#speech{font-size:11px;margin-top:5px;padding:5px 7px;min-height:41px}#boss-art{width:140px;height:114px;left:-15px;bottom:27px}.dispatch{bottom:8px}.desk-heading{top:8px}#board{top:33px;bottom:27px}.desk-foot{bottom:7px}.card{height:62px}.card svg{width:29px;height:31px}.card .name{font-size:10px}.slot{height:47px}.slot svg{width:26px;height:27px}.tray-zone>p{font-size:10px;margin-top:5px;height:26px}.tray-heading{margin-bottom:6px}.score b{font-size:19px}.panel{padding:18px}footer{height:25px}footer button{min-height:25px}}
@media(max-width:350px){.shell{padding-left:10px;padding-right:10px;gap:6px}.score small{display:none}#stages{font-size:9px}#stages span{padding:4px 5px}.boss-copy{left:108px;right:9px}.boss-name span{font-size:8px}#speech{font-size:10px}.tray{gap:3px;padding:5px}.tray-heading{font-size:9px}#feedback{font-size:9px}.desk{min-height:145px}#board{left:8px;right:8px}.card svg{width:27px;height:29px}.card .tab{font-size:7px}.card .name{font-size:10px}.card{height:59px}.slot{height:45px}.slot svg{width:23px;height:25px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.001ms!important;transition:none!important}.fly{display:none}}
/* Dense columns have staggered, full-size pickup fronts; no scaled hit targets. */
@media(max-height:600px){.shell{gap:5px;padding-top:6px;padding-bottom:5px}header{padding-bottom:5px}h1{font-size:23px}header p{font-size:7px;margin-top:3px}.stamp{font-size:8px;padding:2px 7px}.stamp b{font-size:9px}.scorebar{height:22px}.score b{font-size:18px}.boss-zone{height:94px}.boss-copy{top:6px;left:96px}.boss-name>b{font-size:13px}.boss-name span{font-size:8px}#speech{font-size:10px;min-height:29px;margin-top:3px;padding:3px 6px;line-height:1.25}#boss-art{width:115px;height:94px;bottom:22px;left:-10px}.dispatch{bottom:5px}.dispatch>div:first-child{margin-bottom:2px;font-size:9px}.dispatch strong{font-size:13px}.track{height:4px}#new-work{bottom:28px;font-size:9px}.desk{min-height:150px}.desk-heading{top:6px;font-size:9px}#board{top:27px;bottom:21px}.desk-foot{bottom:5px;font-size:8px}.card svg{width:24px;height:25px}.card .name{font-size:9px}.card .tab{font-size:6px}.tray-zone{padding-top:3px}.tray-heading{margin-bottom:5px}.tray{padding:5px}.slot{height:41px}.slot svg{width:22px;height:23px}.slot .name{font-size:8px}.tray-zone>p{height:24px;font-size:9px;margin-top:3px}footer{height:20px}footer button{min-height:20px}.panel h2{font-size:25px}.panel .intro{font-size:11px;margin:10px 0}.mini-cards{margin:12px 0}.score-total{margin:12px 0;padding:8px}.score-total strong{font-size:34px}.stats{gap:9px 15px}}

.desk{isolation:isolate}

.is-paused .new-paper{animation-play-state:paused}
/* V0.2: lifted pickup fronts, quiet covered files, and independent match feedback. */
.card.available{transform:translateY(-2px);filter:brightness(1.06) saturate(1.07);border:2px solid #425f40;box-shadow:0 6px 0 #425f40,0 0 0 2px #fff9e5,0 7px 9px #34452a26}
.card.available::after{content:'';position:absolute;right:3px;bottom:3px;width:4px;height:4px;border-radius:50%;background:#557b45;box-shadow:0 0 0 1px #fff9e5}
.card.available:active{transform:translateY(1px) scale(.96);filter:brightness(1.15)}
.card.blocked{filter:brightness(.64) saturate(.4);box-shadow:0 2px 0 #647057;border-color:#718065}.card.blocked .tab{opacity:1}.card.available .tab{opacity:.35}
.match-card{position:fixed;z-index:80;pointer-events:none;transform-origin:center;border:2px solid #648552!important;box-shadow:0 0 0 2px #fff6c8,0 0 15px #e9b95b77!important}
.match-flash{animation:slots-clear .38s ease-out}.tray.critical{border:2px solid #a53f30;background:#d8a18b;box-shadow:inset 0 0 0 2px #f8d1b3}.tray.critical .slot:not(.filled){border:2px dashed #a13e31;background:#f8d4bc}
.tray-zone:has(.critical) #feedback{color:#a33f2e;font-weight:800}.tray-zone:has(.danger) #tray-count{color:#a24d32;font-weight:800}
.boss-zone.sprint{border-color:#b27034;background:#eee4ca}.boss-zone.sprint .dispatch strong{color:#a8442d;font-size:22px}.boss-zone.sprint #dispatch-label{color:#a34930;font-weight:800}.boss-zone.sprint .track{height:8px;border-color:#a5673e}.boss-zone.sprint .track i{background:#d27542}.desk.sprint{box-shadow:3px 4px 0 #9b6b43,inset 0 0 24px #e7b24a22}
#combo{font-size:12px;font-weight:900;color:#986127}.pop{font-size:17px;white-space:nowrap;max-width:90vw}
footer{height:36px}.settings{display:flex;align-items:center;gap:2px}footer button{min-height:36px;padding:0 7px;font-size:10px;letter-spacing:0;border-radius:4px}footer button:active{background:#dedfcf}#sound{font-variant-numeric:tabular-nums}.stats{grid-template-columns:1fr;gap:12px}.stats div{font-size:12px}
@keyframes slots-clear{0%{background:#ffe3a0;box-shadow:0 0 0 3px #eed396}100%{box-shadow:0 0 0 0 transparent}}
@media(max-height:600px){footer{height:32px}footer button{min-height:32px;font-size:9px;padding:0 6px}.boss-zone.sprint .dispatch strong{font-size:16px}.boss-zone.sprint .track{height:5px}#combo{font-size:10px}}
@media(prefers-reduced-motion:reduce){.card.available:active{transform:translateY(-2px)}.match-card{transition:none}.match-flash{animation:none}}
/* Press feedback changes the artwork, never the pointer target's position/size. */
.card.available:active{transform:translateY(-2px);box-shadow:0 3px 0 #425f40,0 0 0 2px #fff9e5}.card.available:active svg{transform:scale(.9)}
/* Legal/covered state is readable in the same paint, including a fast restart. */
.card{transition:box-shadow .12s}

/* The lower frame is the real pile limit; the tray stays outside the danger area. */
#board{bottom:8px}.desk-foot{top:8px;bottom:auto;left:40%;right:auto;pointer-events:none}
#pile-alert{position:absolute;top:24px;left:8px;right:8px;font-size:10px;font-weight:800;color:#a33c30;text-align:center;z-index:600;pointer-events:none;background:#f9ead8ee;border-radius:2px}
.desk.pile-warning{border-color:#bb583f;box-shadow:3px 4px 0 #a64534,inset 0 -5px 0 #c75c4666}
.desk.pile-critical{box-shadow:3px 4px 0 #a64534,inset 0 -6px 0 #c74a36}
.card.available.pile-edge{border-color:#ad392e;box-shadow:0 6px 0 #aa4234,0 0 0 2px #fff4de;animation:pile-flash .7s ease-in-out infinite}
@keyframes pile-flash{0%,100%{outline:2px solid #ad392e;outline-offset:1px}50%{outline:3px solid #f1784f;outline-offset:2px}}
.is-paused .pile-edge{animation-play-state:paused}
@media(max-height:600px){#pile-alert{top:18px;font-size:8px}}
@media(prefers-reduced-motion:reduce){.card.available.pile-edge{animation:none;outline:2px solid #b13429}}
/* V0.3: readable next file, distinct inks, compact tools without moving the desk. */
.card{border-color:var(--art-accent);border-top:4px solid var(--art-accent)}
.card.available{border-color:var(--art-accent);box-shadow:0 4px 0 var(--art-accent),0 0 0 2px #fff9e5}
.card.blocked{filter:brightness(.82) saturate(.8);border-color:var(--art-accent)}
.card .tab{display:none}.card.blocked>.tab{display:flex;align-items:center;justify-content:center;gap:1px;top:0;left:0;width:100%;height:20px;font-size:10px;opacity:1;background:var(--tile-bg);color:#26312a}
.card.blocked>.tab svg{width:18px;height:19px;opacity:1}.card.blocked>.tab b{font-size:9px}.card.blocked>.name,.card.blocked>svg{opacity:.45}
footer{height:50px;flex-shrink:0;gap:4px}#tools{display:flex;gap:4px;min-width:146px}#tools button{width:46px;height:46px;min-height:44px;padding:2px;border:1.5px solid #47523b;border-radius:6px;background:#fff5db;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#2d352e}#tools svg{width:25px;height:25px;--art-accent:#d6a251}#tools span{font-size:9px;white-space:nowrap}#tools button:disabled{opacity:.38}#tools .selected{background:#e6b6ce;outline:2px solid #a84378}.settings{gap:3px}.settings button{padding:4px;font-size:10px;min-height:36px}.intro-tool{display:flex;justify-content:center;margin:12px}.intro-tool svg{width:65px;height:65px;--art-accent:#d6a251}.slot.target{outline:2px solid #a84378;cursor:pointer;box-shadow:0 0 0 2px #fff}.tray-zone{position:relative}#rescue-restart{position:absolute;right:0;bottom:-1px;background:#ffe082;border:1px solid #47523b;border-radius:4px;font-size:10px;height:24px}#rescue-restart:not([hidden])~#hint{padding-right:62px;text-align:left;font-size:9px}.stamp{text-decoration:none;color:inherit}.panel .primary{margin-top:12px;min-height:44px}.slot.filled{border-top:3px solid var(--art-accent,#687158)}
@media(max-height:600px){footer{height:48px}.intro-tool{margin:5px}.intro-tool svg{width:48px;height:48px}.panel{padding:15px}.panel .fine{font-size:10px}}
.restart-level{display:block;margin:10px auto 0;min-height:36px;background:transparent;border:1px solid #657257;border-radius:5px;color:#48563e;padding:6px 16px}
/* Overtime changes the office, not tile colors or the rules. */
body.overtime{background:#8d8c89}.overtime .shell{background:#c7c5b7}.overtime .boss-zone{background:#b8b9ac;border-color:#7d5c55}.overtime .office-window{background:#656d82}.overtime .desk{border-color:#865c50}.overtime #workday{color:#973d32;font-weight:900}#workday{margin-left:auto;color:#606953;display:flex;align-items:center;gap:4px;white-space:nowrap}#workday i{display:inline-block;width:48px;height:4px;border:1px solid #667454;background:linear-gradient(to right,#768e57 var(--day),transparent var(--day))}.card.changing{outline:3px dashed #bd7a19;outline-offset:2px}.overtime .boss-zone.warning{box-shadow:0 0 0 2px #b25b49}.shell,.boss-zone,.office-window{transition:background-color 1s,border-color 1s}
/* Give the smallest phone an actual descent corridor, without shrinking tap targets. */
@media(max-height:600px){.shell{gap:4px}header{padding-bottom:3px}h1{font-size:21px}.boss-zone{height:76px}.boss-copy{left:90px;top:3px}.boss-name>b{font-size:12px}#speech{font-size:9px;min-height:25px;margin-top:2px;padding:2px 5px}#boss-art{width:90px;height:73px;left:0;bottom:18px}.dispatch{bottom:4px}.dispatch>div:first-child{font-size:8px}.dispatch strong{font-size:12px}.tray-zone>p{height:18px;font-size:8px}.desk-heading{font-size:8px}#table-status{font-size:8px}}
