:root{color-scheme:light;--gap: 16px;--beige: #efe8e4;--brown: #cf9870;--green: #9fb792;--blue: #7499b0;--black: #2d2d2d;--bg: var(--beige);--surface: #fbf8f6;--text: var(--black);--hint: #5f5a57;--line: #d9cfc9;--danger: #8f2d1f;--font-body: system-ui, "Segoe UI", Roboto, sans-serif}html{font-size:112.5%}*{box-sizing:border-box}body{margin:0;font:1rem/1.5 var(--font-body);background:var(--bg);color:var(--text)}a{color:inherit;text-decoration:none}h1{font-weight:400;font-size:1.4rem;line-height:1.25;margin:0}h2{font-weight:500;font-size:1.05rem;margin:0 0 8px}p{margin:0}.muted{color:var(--hint)}.small{font-size:.85rem}:focus-visible{outline:2px solid var(--black);outline-offset:2px}.shell{min-height:100vh;display:flex;flex-direction:column}.topbar{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:10px var(--gap);border-bottom:1px solid var(--line);background:var(--surface)}.shell main{flex:1;padding-bottom:84px}.screen{display:flex;flex-direction:column;gap:var(--gap);padding:var(--gap);max-width:36rem;margin:0 auto;width:100%}.screen.wide{max-width:60rem}.tabbar{position:fixed;bottom:0;left:0;right:0;display:flex;justify-content:space-around;background:var(--surface);border-top:1px solid var(--line);padding:6px 4px calc(6px + env(safe-area-inset-bottom))}.tab{display:flex;flex-direction:column;align-items:center;gap:2px;font-size:.75rem;padding:4px 6px;border-radius:10px;min-width:56px}.tab.active{background:var(--brown);font-weight:600}@media (min-width: 960px){.shell{display:grid;grid-template-columns:200px 1fr;grid-template-rows:auto 1fr;grid-template-areas:"top top" "nav main"}.topbar{grid-area:top}.shell main{grid-area:main}.tabbar{grid-area:nav;position:static;flex-direction:column;justify-content:flex-start;gap:4px;border-top:none;border-right:1px solid var(--line);padding:var(--gap) 8px}.tab{flex-direction:row;font-size:.95rem;gap:10px;padding:10px 12px}.shell main{padding-bottom:0}}.wordmark{letter-spacing:.3em;font-weight:500}.login .wordmark{text-align:center;font-size:1.4rem;margin:10vh 0 8px}.panel{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:var(--gap)}.tone-green{background:var(--green);border-color:var(--green)}.tone-brown{background:var(--brown);border-color:var(--brown)}.tone-blue{background:var(--blue);border-color:var(--blue)}.tone-closed{background:var(--black);border-color:var(--black);color:var(--beige)}.stack{display:flex;flex-direction:column;gap:10px}.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.row.spread{justify-content:space-between}.list{list-style:none;padding:0;margin:0}.list-row{padding:10px 0;border-top:1px solid var(--line)}.list-row:first-child{border-top:none}.badge{display:inline-block;padding:2px 10px;border-radius:999px;font-size:.8rem;white-space:nowrap}.pin{font-size:1.6rem;letter-spacing:.2em}.field{display:flex;flex-direction:column;gap:4px}input,select{font:inherit;padding:12px;border-radius:10px;color:var(--text);background:#fff;border:1px solid var(--line);min-width:0}.row>input{flex:1}button{font:inherit;padding:14px 16px;border-radius:12px;border:none;cursor:pointer;color:var(--text)}button:disabled{opacity:.55;cursor:default}button.small{padding:8px 12px}.primary{background:var(--brown);font-weight:600}.secondary{background:transparent;border:1px solid var(--black)}.danger{background:transparent;border:1px solid var(--danger);color:var(--danger)}.link{background:none;padding:4px 0;text-decoration:underline}.error{color:var(--danger)}.state{display:flex;flex-direction:column;gap:8px;align-items:flex-start;padding:var(--gap);border-radius:14px;background:var(--surface);border:1px dashed var(--line)}.state-error,.state-denied{border-style:solid;border-color:var(--danger)}.state-offline{border-style:solid;border-color:var(--blue)}.state-stale{flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:space-between;background:var(--blue);border:none;padding:10px 14px}.steam{display:inline-block;width:10px;height:18px;margin-right:8px;border-radius:50%;background:var(--brown);opacity:.6;animation:steam 1.6s ease-in-out infinite;vertical-align:middle}@keyframes steam{0%{transform:translateY(4px) scaleX(1);opacity:.2}50%{opacity:.7}to{transform:translateY(-6px) scaleX(.6);opacity:0}}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#2d2d2d8c;display:grid;place-items:center;padding:var(--gap);z-index:10}.dialog{width:100%;max-width:22rem;display:flex;flex-direction:column;gap:12px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation:none!important;transition:none!important}}.stack-tight{display:flex;flex-direction:column;gap:4px}.grid{display:grid;gap:var(--gap);grid-template-columns:repeat(auto-fill,minmax(min(100%,22rem),1fr));align-items:start}.tone-plain{background:var(--surface);border:1px solid var(--line)}.progress{display:block;height:6px;border-radius:3px;background:var(--line);overflow:hidden}.progress>span{display:block;height:100%;background:var(--black)}textarea{font:inherit;padding:12px;border-radius:10px;border:1px solid var(--line);background:#fff;color:var(--text);resize:vertical;width:100%}.check{display:flex;gap:8px;align-items:center}.check input{width:22px;height:22px}.photo{max-width:100%;border-radius:10px}.button-like{display:inline-flex;justify-content:center;padding:14px 16px;border-radius:12px;cursor:pointer}.narrow{width:6rem;flex:0 0 auto!important}.item-editor{border:1px solid var(--line);border-radius:10px;padding:10px;display:flex;flex-direction:column;gap:8px}h3{font-size:1rem;font-weight:500;margin:0}ol{margin:0;padding-left:1.2rem}.tab.desktop-only{display:none}@media (min-width: 960px){.tab.desktop-only{display:flex}.tab.phone-only{display:none}}.tone-brown .primary,.tone-green .primary{background:var(--surface);border:1px solid var(--black)}@media (max-width: 360px){.topbar .muted{max-width:9rem;text-align:right}}.date{width:auto;flex:0 0 auto}.bell{position:relative;font-size:1.2rem;padding:4px}.bell-count{position:absolute;top:-4px;right:-8px;background:var(--black);color:var(--beige);font-size:.7rem;border-radius:999px;padding:1px 6px;font-weight:600}.unread strong{font-weight:700}details>summary{cursor:pointer}@media (max-width: 360px){.topbar .who{display:none}}.list.panel,.panel.list{padding:4px var(--gap)}.demo-login{text-align:left;background:var(--surface);padding:10px 14px}:root{--alert: #e58b79;--warn: #f0d27a;--closed: #ddd6d1;--waiting: #f3dcc8}.club-hello h1{font-size:1.5rem}.my-shift{display:flex;flex-direction:column;gap:10px}.tiles{display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}@media (min-width: 720px){.tiles{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:16px}}.tile{position:relative;display:flex;flex-direction:column;gap:4px;padding:12px 12px 14px;border-radius:18px;border:1px solid rgba(45,45,45,.12);min-height:210px;color:var(--black);transition:transform .15s ease,box-shadow .15s ease;overflow:hidden}.tile:active{transform:scale(.98)}@media (hover: hover){.tile:hover{transform:translateY(-2px);box-shadow:0 6px 18px #2d2d2d1f}}.tile-closed{background:var(--closed)}.tile-waiting{background:var(--waiting)}.tile-opening{background:var(--beige);border-color:var(--brown);border-width:2px}.tile-ready{background:var(--green)}.tile-warn{background:var(--warn)}.tile-stop{background:var(--alert);border-color:var(--danger);border-width:2px}.tile-late{font-size:.78rem;font-weight:600}.tone-warn{background:var(--warn);border-color:var(--warn)}.tone-stop{background:var(--alert);border-color:var(--alert)}.issue-list{margin:0;padding-left:1.1em}.tone-alert{background:var(--alert);border-color:var(--alert)}.tile-mine{outline:3px solid var(--black);outline-offset:-3px}.tile-figure{height:92px;align-self:center;margin-bottom:2px}.tile-name{font-size:1.05rem;font-weight:600;letter-spacing:.01em}.tile-status{font-size:.85rem;display:flex;gap:6px;align-items:baseline}.tile-icon{display:inline-grid;place-items:center;width:1.25em;height:1.25em;border-radius:50%;background:#ffffff8c;font-weight:700;font-size:.8rem}.tile-people{display:flex;flex-wrap:wrap;gap:4px;font-size:.78rem;margin-top:auto}.chip{background:#fff9;border-radius:999px;padding:1px 8px;white-space:nowrap}.tile-tech{position:absolute;top:10px;right:10px;background:var(--surface);border-radius:999px;padding:1px 8px;font-size:.8rem;font-weight:600}.tile-mine-mark{position:absolute;top:10px;left:10px;background:var(--black);color:var(--beige);border-radius:999px;padding:1px 8px;font-size:.7rem}.zone-hero{display:flex;gap:14px;align-items:center;padding:14px;border-radius:18px}.zone-figure{height:110px;flex:0 0 auto}.tech-button{font-weight:600}.run-row{padding:8px 0;border-top:1px solid var(--line)}.run-row:first-child{border-top:none}.thumbs{display:flex;gap:6px}.thumbs img,.thumb{width:56px;height:56px;object-fit:cover;border-radius:8px}.rounds{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px}.round{display:flex;flex-direction:column;align-items:center;gap:2px;min-width:72px;padding:6px;border-radius:12px;background:var(--beige);border:1px dashed var(--line);font-size:.85rem}.round img{width:56px;height:42px;object-fit:cover;border-radius:6px}.round-done{background:var(--green);border-style:solid;border-color:var(--green)}.round-late{background:var(--alert);border-style:solid;border-color:var(--alert)}.figure{position:relative;display:inline-block;aspect-ratio:1 / 1;color:var(--black)}.figure-art,.figure-art svg{display:block;width:100%;height:100%}.fx{position:absolute;width:30%;height:30%;pointer-events:none}.fx i{position:absolute;display:block}.fx-bob .figure-art{animation:bob 3.2s ease-in-out infinite}@keyframes bob{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}.fx-leaves i{width:9px;height:5px;border-radius:0 100%;background:#5f7a52;opacity:0;animation:leaf 4s ease-out infinite}.fx-leaves i:nth-child(1){--dx: -28px;--dy: 30px;--r: 220deg;animation-delay:.2s}.fx-leaves i:nth-child(2){--dx: -12px;--dy: 44px;--r: 160deg;animation-delay:.5s;background:var(--green)}.fx-leaves i:nth-child(3){--dx: 10px;--dy: 38px;--r: 260deg;animation-delay:.9s}.fx-leaves i:nth-child(4){--dx: -36px;--dy: 12px;--r: 120deg;animation-delay:1.3s;background:var(--green)}@keyframes leaf{0%{opacity:0;transform:translate(0) rotate(0)}10%{opacity:1}45%{opacity:0;transform:translate(var(--dx),var(--dy)) rotate(var(--r))}to{opacity:0}}.figure-horse .figure-art svg{transform-origin:50% 100%;animation:sway 4s ease-in-out infinite}@keyframes sway{0%,40%,to{transform:rotate(0)}10%{transform:rotate(-1.5deg)}20%{transform:rotate(1deg)}}.fx-steam i{width:6px;height:18px;border-radius:50%;background:#fffffff2;filter:blur(2px);opacity:0;animation:steam 3s ease-in infinite}.fx-steam i:nth-child(1){left:0;animation-delay:0s}.fx-steam i:nth-child(2){left:8px;animation-delay:.8s}.fx-steam i:nth-child(3){left:4px;animation-delay:1.6s}.fx-steam i:nth-child(4){display:none}@keyframes steam{0%{opacity:0;transform:translateY(10px) scaleX(1)}30%{opacity:.9}to{opacity:0;transform:translateY(-22px) scaleX(1.8)}}.fx-bubbles i{width:7px;height:7px;border-radius:50%;border:1.5px solid var(--black);opacity:0;animation:bubble 3.4s ease-in infinite}.fx-bubbles i:nth-child(1){left:2px;animation-delay:0s}.fx-bubbles i:nth-child(2){left:12px;animation-delay:.9s;width:5px;height:5px}.fx-bubbles i:nth-child(3){left:6px;animation-delay:1.7s}.fx-bubbles i:nth-child(4){left:16px;animation-delay:2.4s;width:4px;height:4px}@keyframes bubble{0%{opacity:0;transform:translateY(14px)}20%{opacity:.9}to{opacity:0;transform:translateY(-20px)}}.fx-drops i{width:3px;height:7px;border-radius:50%/30% 30% 70% 70%;background:var(--blue);opacity:0;animation:drop 1.6s ease-in infinite}.fx-drops i:nth-child(1){left:0;animation-delay:0s}.fx-drops i:nth-child(2){left:6px;animation-delay:.4s}.fx-drops i:nth-child(3){left:11px;animation-delay:.8s}.fx-drops i:nth-child(4){left:3px;animation-delay:1.2s}@keyframes drop{0%{opacity:0;transform:translateY(0)}20%{opacity:1}to{opacity:0;transform:translateY(22px)}}.fx-ripple i{left:0;top:0;width:18px;height:8px;border-radius:50%;border:1.5px solid var(--blue);opacity:0;animation:ripple 3s ease-out infinite}.fx-ripple i:nth-child(2){animation-delay:1s}.fx-ripple i:nth-child(3){animation-delay:2s}.fx-ripple i:nth-child(4){display:none}@keyframes ripple{0%{opacity:.9;transform:scale(.4)}to{opacity:0;transform:scale(2.2)}}.chips,.row.wrap{display:flex;flex-wrap:wrap;gap:8px}.segmented{flex-wrap:wrap;gap:6px}.table{width:100%;border-collapse:collapse}.table th,.table td{text-align:left;padding:6px 4px;border-bottom:1px solid var(--line)}.table input{width:100%;max-width:7rem}.thumbs{display:flex;flex-wrap:wrap;gap:6px}.thumbs img{width:72px;height:72px;object-fit:cover;border-radius:8px}.rule-toggle{margin-left:8px}.qr{width:120px;height:120px;flex:none}.qr-sheet{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.qr-card{margin:0;padding:8px;background:#fff;border:1px solid var(--line);border-radius:8px;text-align:center;break-inside:avoid}.qr-card img{width:100%;max-width:160px}.qr-card figcaption{font-size:.8rem;color:#000}@media print{.topbar,.tabbar,.no-print{display:none!important}body{background:#fff}.qr-sheet{grid-template-columns:repeat(4,1fr)}}.schedule-title{min-width:9rem;text-align:center}.schedule-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--line);border-radius:12px;background:var(--surface)}.schedule{border-collapse:separate;border-spacing:0;font-size:.82rem;min-width:100%}.schedule th,.schedule td{padding:3px;border-bottom:1px solid var(--line);text-align:center}.schedule thead th{font-weight:500;white-space:nowrap}.schedule thead th span{display:block;line-height:1.2}.schedule .who{position:sticky;left:0;z-index:1;background:var(--surface);text-align:left;font-weight:500;min-width:8.5rem;max-width:10rem;padding:4px 8px;border-right:1px solid var(--line)}.schedule .weekend{color:var(--brown)}.schedule .is-today{background:#7499b01f}.schedule .cell{width:100%;min-width:3.6rem;min-height:2.4rem;border-radius:8px;border:1px dashed transparent;background:transparent;font:inherit;font-size:.78rem;padding:2px;cursor:pointer;color:var(--text)}.schedule .cell:disabled{cursor:default}.schedule .cell-empty{color:var(--hint)}.schedule .cell-empty:not(:disabled):hover{border-color:var(--line)}.schedule .cell-plan{background:var(--beige);border-color:var(--brown);border-style:solid}.schedule .cell-working{background:var(--blue)}.schedule .cell-done{background:var(--green)}.schedule .cell-missed{background:var(--alert)}.schedule-wrap.compact .cell{min-width:2.6rem;font-size:.7rem}.schedule-wrap.compact .who{min-width:7rem}.cell-editor{position:fixed;left:8px;right:8px;bottom:76px;z-index:20;max-height:70vh;overflow:auto;max-width:34rem;margin:0 auto;box-shadow:0 8px 28px #2d2d2d40}.month-input{min-width:11rem}@media (max-width: 480px){.schedule .who{min-width:6.5rem;font-size:.75rem}}.sheet-row{display:flex;justify-content:space-between;align-items:center;gap:12px;width:100%;background:none;border:0;padding:0;font:inherit;color:inherit;text-align:left;cursor:pointer}.sheet-nums{text-align:right;white-space:nowrap}.table caption{caption-side:bottom;text-align:left;padding-top:6px}.fx-snow{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.fx-snow i{position:absolute;top:-6px;width:5px;height:5px;border-radius:50%;background:#fff;box-shadow:0 0 0 1px #2d2d2d59;opacity:0;animation:snow 4s linear infinite}.fx-snow i:nth-child(1){left:12%;animation-delay:0s}.fx-snow i:nth-child(2){left:38%;animation-delay:1.1s;width:4px;height:4px}.fx-snow i:nth-child(3){left:63%;animation-delay:2.2s}.fx-snow i:nth-child(4){left:86%;animation-delay:3s;width:3px;height:3px}@keyframes snow{0%{opacity:0;transform:translate(0)}15%{opacity:.95}85%{opacity:.9}to{opacity:0;transform:translate(-8px,88px)}}
