:root{--ink: #1c2320;--paper: #f4f1ea;--card: #ffffff;--line: #d8d2c4;--green: #1a3a2a;--green-soft: #e2efe6;--blue: #1c4f82;--blue-soft: #e0ecf7;--amber: #8a5a00;--amber-soft: #fdeece;--purple: #5b3a8a;--purple-soft: #ece4f7;--gray: #5c6660;--gray-soft: #e7e6e1;--red: #a02c2c}*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,sans-serif;background:var(--paper);color:var(--ink);-webkit-tap-highlight-color:transparent}h1{font-size:1.25rem;margin:0}h2{font-size:1rem;margin:0}.muted{color:var(--gray);font-size:.85rem;margin:0}.empty{text-align:center;padding:3rem 1rem;color:var(--gray)}.page{max-width:720px;margin:0 auto;padding:.75rem .75rem 5rem}.topbar{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.5rem 0;position:sticky;top:0;background:var(--paper);z-index:5;border-bottom:2px solid var(--line);margin-bottom:.75rem}.topbar-title{flex:1;text-align:center}.btn{border:2px solid var(--line);background:var(--card);border-radius:10px;padding:.6rem 1rem;font-size:1rem;min-height:48px;cursor:pointer}.btn:disabled{opacity:.5;cursor:default}.btn-primary{background:var(--green);border-color:var(--green);color:#fff;font-weight:600}.btn-ghost{border-color:transparent;background:transparent}.btn-wide{position:fixed;bottom:.75rem;left:50%;transform:translate(-50%);width:min(720px,calc(100% - 1.5rem));font-size:1.1rem;min-height:56px;box-shadow:0 4px 16px #0003;z-index:10}.chip{display:inline-flex;align-items:center;gap:.3rem;border-radius:999px;padding:.25rem .7rem;font-size:.85rem;font-weight:600;border:1.5px solid currentColor;white-space:nowrap}.chip-pending{color:var(--gray);background:var(--gray-soft)}.chip-notstarted{color:var(--ink);background:var(--card)}.chip-inprogress{color:var(--blue);background:var(--blue-soft)}.chip-check{color:var(--amber);background:var(--amber-soft)}.chip-gated{color:var(--purple);background:var(--purple-soft)}.chip-complete{color:var(--green);background:var(--green-soft)}.tag{display:inline-block;font-size:.75rem;border:1px solid var(--line);border-radius:6px;padding:.1rem .45rem;background:var(--card);color:var(--gray)}.tag-gated{color:var(--purple);border-color:var(--purple)}.tag-role{color:var(--purple);border-color:var(--purple);font-weight:700}.tag-actor{color:var(--green)}.section-head{margin:1.2rem 0 .5rem;font-size:1rem;text-transform:uppercase;letter-spacing:.05em}.phase-section>summary.section-head{cursor:pointer;min-height:48px;display:flex;align-items:center;gap:.4rem;border-bottom:2px solid var(--line);-webkit-user-select:none;user-select:none}.route-head{margin:.8rem 0 .4rem;font-size:.85rem;font-weight:800;color:var(--gray);text-transform:uppercase;letter-spacing:.05em}.card.card-eod{display:block;width:100%;text-align:left;background:#4a1520;color:#fff;border:3px solid #2b0a10;padding:.9rem;cursor:pointer;font:inherit}.card.card-eod:active{background:#5c1c29}.card-eod .card-names strong{color:#fff;font-size:1.1rem;letter-spacing:.06em}.eod-sub{color:#e8c8ce;font-size:.85rem}.eod-progress{margin-top:.5rem;font-size:.9rem;color:#e8c8ce}.card-eod .chip{background:#fff}.truck-card{padding:.8rem;border-color:var(--blue)}.truck-pallets{margin:.5rem 0 .8rem;padding-left:1.6rem;columns:2;column-gap:1.2rem;font-size:.9rem;line-height:1.5}.btn-arrive{width:100%}@media (max-width: 480px){.truck-pallets{columns:1}}.card{background:var(--card);border:2px solid var(--line);border-radius:12px;margin-bottom:.6rem;overflow:hidden}.card-tappable:active{background:var(--green-soft)}.card-locked{opacity:.85;background:var(--gray-soft)}.card-main{display:block;width:100%;text-align:left;border:0;background:transparent;padding:.8rem;font:inherit;cursor:pointer}.card-main:disabled{cursor:default}.card-title{display:flex;justify-content:space-between;gap:.5rem;align-items:flex-start;margin-bottom:.4rem}.card-names{display:flex;flex-direction:column;gap:.1rem}.card-names strong{font-size:1.05rem;font-weight:700;line-height:1.25}.card-day{flex:none;font-size:.8rem;font-weight:700;color:var(--gray);border:1.5px solid var(--line);border-radius:6px;padding:.15rem .5rem;background:var(--card)}.card-meta{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center}.card-action{margin:0 .8rem .8rem}.banner{display:flex;gap:.6rem;align-items:center;border-radius:10px;padding:.7rem .9rem;margin:.5rem 0;border:2px solid var(--line);background:var(--card)}.banner-truck{border-color:var(--blue);background:var(--blue-soft)}.banner-truck button{margin-left:auto}.banner-note{background:var(--gray-soft);font-size:.9rem}.banner-vip{border-color:var(--purple);background:var(--purple-soft)}.tag-vip{color:var(--purple);border-color:var(--purple);font-weight:700}.note-block{background:var(--card);border:2px solid var(--line);border-left:6px solid var(--gray);border-radius:10px;padding:.7rem .9rem;margin:.5rem 0}.note-label{display:block;font-size:.75rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--gray);margin-bottom:.25rem}.note-block p{margin:0;font-size:.95rem;line-height:1.55}.banner-bank{border-color:var(--amber);background:var(--amber-soft)}.tabs{display:flex;gap:.4rem;margin:.6rem 0}.tab{flex:1;min-height:52px;font-size:1rem;font-weight:600;border:2px solid var(--line);border-radius:10px;background:var(--card);cursor:pointer}.tab-active{border-color:var(--green);background:var(--green-soft);box-shadow:inset 0 -4px 0 var(--green)}.steps{list-style:none;margin:0;padding:0}.step{background:var(--card);border:2px solid var(--line);border-radius:12px;margin-bottom:.5rem;overflow:hidden}.step-done{border-color:var(--green);background:var(--green-soft)}.step-special{border-color:var(--amber);border-width:3px}.step-locked{background:var(--gray-soft)}.step-toggle{display:flex;gap:.7rem;width:100%;text-align:left;border:0;background:transparent;padding:.7rem;font:inherit;cursor:pointer;align-items:flex-start}.step-toggle:disabled{cursor:default}.step-box{flex:none;width:40px;height:40px;border:2px solid var(--line);border-radius:10px;display:grid;place-items:center;font-size:1.3rem;background:#fff;color:var(--green)}.step-done .step-box{border-color:var(--green);background:var(--green);color:#fff}.step-body{display:flex;flex-direction:column;gap:.3rem}.step-text em{font-style:normal;color:var(--gray);font-size:.85em}.step-done .step-text{text-decoration:line-through;text-decoration-thickness:1px}.special-band{display:inline-block;align-self:flex-start;background:var(--amber);color:#fff;font-size:.72rem;font-weight:800;letter-spacing:.06em;border-radius:5px;padding:.1rem .45rem}.step-tags{display:flex;flex-wrap:wrap;gap:.3rem}.step-input{display:flex;gap:.4rem;padding:0 .7rem .7rem 4rem}.step-input input{flex:1;min-height:44px;border:2px solid var(--line);border-radius:8px;padding:0 .6rem;font-size:1rem}.topbar-actions{display:flex;gap:.2rem;align-items:center}.step-note{padding:0 .7rem .5rem 4rem}.btn-note{border:0;background:transparent;color:var(--gray);font-size:.85rem;padding:.3rem 0;min-height:36px;cursor:pointer}.note-editor{display:flex;flex-direction:column;gap:.4rem}.note-target{margin:0;font-size:.85rem;color:var(--gray);background:var(--gray-soft);border-radius:8px;padding:.45rem .6rem;line-height:1.4}.note-target strong{color:var(--ink)}.note-target-general{background:var(--blue-soft);color:var(--blue);font-weight:600}.note-scope{display:flex;align-items:center;gap:.5rem;font-size:.9rem;color:var(--gray);min-height:44px;cursor:pointer}.note-scope input{width:22px;height:22px;accent-color:var(--green)}.note-editor textarea{min-height:70px;border:2px solid var(--line);border-radius:8px;padding:.5rem .6rem;font:inherit;font-size:.95rem;resize:vertical}.note-editor-actions{display:flex;gap:.4rem;flex-wrap:wrap}.note-editor-actions .btn{min-height:44px;display:inline-flex;align-items:center}.note-card{padding:.8rem}.note-text{margin:.4rem 0 .5rem;font-size:.95rem;line-height:1.5;white-space:pre-wrap}.toast{position:fixed;top:.75rem;left:50%;transform:translate(-50%);width:min(680px,calc(100% - 1.5rem));z-index:30;background:var(--green);color:#fff;border:3px solid #0e241a;border-radius:12px;padding:.8rem 1rem;font-size:1rem;font-weight:600;text-align:left;box-shadow:0 6px 20px #00000059;cursor:pointer;animation:toast-in .25s ease-out}@keyframes toast-in{0%{transform:translate(-50%,-1.5rem);opacity:0}to{transform:translate(-50%);opacity:1}}.signin{max-width:360px;margin:12vh auto 0;padding:1rem}.signin h1{text-align:center;margin-bottom:1.5rem;color:var(--green)}.signin form{display:flex;flex-direction:column;gap:1rem}.signin label{display:flex;flex-direction:column;gap:.3rem;font-weight:600}.signin input{min-height:52px;font-size:1.2rem;border:2px solid var(--line);border-radius:10px;padding:0 .7rem}.form-error{color:var(--red);font-weight:600}
