:root{--brand: #811419;--brand-bright: #a81c23;--brand-dim: #5c0e12;--brand-ink: #211f20;--bg: #171516;--surface: #221f20;--surface-2: #2f2b2c;--surface-3: #3a3536;--border: #443e3f;--border-soft: #332e2f;--text: #f5f1f1;--muted: #a89d9e;--muted-dim: #7d7374;--accent: var(--brand-bright);--accent-dark: var(--brand);--green: #4ade80;--amber: #fbbf24;--red: #f87171;--radius: 12px;--radius-sm: 8px;--tap: 44px;--shadow: 0 4px 16px rgba(0, 0, 0, .35);--ring: 0 0 0 2px var(--brand-bright)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:16px;line-height:1.5;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);-webkit-font-smoothing:antialiased}h1,h2,h3{margin:0 0 .5rem;line-height:1.25;letter-spacing:-.01em}h1{font-size:1.35rem;font-weight:700}h2{font-size:1.1rem;font-weight:700}h3{font-size:.9rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}:focus-visible{outline:none;box-shadow:var(--ring);border-radius:var(--radius-sm)}button,input,select,textarea{font:inherit;color:inherit}button{min-height:var(--tap);padding:0 1rem;border:none;border-radius:var(--radius-sm);background:var(--brand);color:#fff;font-weight:600;cursor:pointer;transition:background .12s,transform .06s,opacity .12s}button:hover{background:var(--brand-bright)}button:active{transform:scale(.97)}button:disabled{opacity:.45;cursor:default;transform:none}button:disabled:hover{background:var(--brand)}button.secondary{background:var(--surface-2)}button.secondary:hover{background:var(--surface-3)}button.ghost{background:transparent;color:var(--muted)}button.ghost:hover{background:var(--surface-2);color:var(--text)}button.danger{background:#b91c1c}button.danger:hover{background:#dc2626}button.small{min-height:34px;padding:0 .7rem;font-size:.85rem}input,select,textarea{width:100%;min-height:var(--tap);padding:.5rem .75rem;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);transition:border-color .12s,box-shadow .12s}textarea{min-height:90px;padding-top:.6rem;resize:vertical}input:hover,select:hover,textarea:hover{border-color:var(--muted-dim)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--brand-bright);box-shadow:0 0 0 3px #a81c2340}input::placeholder{color:var(--muted-dim)}label{display:block;margin-bottom:.9rem;font-size:.8rem;color:var(--muted)}label>span{display:block;margin-bottom:.3rem;font-weight:600;letter-spacing:.02em}.app{display:flex;flex-direction:column;height:100%}.topbar{display:flex;align-items:center;gap:.75rem;padding:.6rem .9rem;background:var(--brand-ink);border-bottom:2px solid var(--brand);position:sticky;top:0;z-index:20}.topbar .brand{font-weight:800;letter-spacing:.06em;display:inline-flex;align-items:center;gap:.4rem;text-transform:uppercase}.topbar .brand .bolt{color:var(--brand-bright);font-size:1.05em;line-height:1}.topbar .spacer{flex:1}.content{flex:1;overflow:auto;padding:.9rem;padding-bottom:calc(5.5rem + env(safe-area-inset-bottom))}.tabs{display:flex;gap:.15rem;padding:0 .9rem;background:var(--brand-ink);border-bottom:1px solid var(--border);overflow-x:auto;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tabs button{min-height:42px;background:transparent;color:var(--muted);border-bottom:2px solid transparent;border-radius:0;padding:0 .8rem;white-space:nowrap;font-size:.9rem;transition:color .12s,border-color .12s}.tabs button:hover{background:transparent;color:var(--text)}.tabs button.active{color:var(--accent);border-bottom-color:var(--accent)}.tab-badge{display:inline-block;margin-left:.4rem;min-width:20px;padding:0 .35rem;border-radius:999px;background:var(--brand-bright);color:#fff;font-size:.72rem;font-weight:700;line-height:20px;text-align:center}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:.9rem;margin-bottom:.75rem}.card>h3:first-child{margin-top:0}.row{display:flex;align-items:center;gap:.6rem}.row.wrap{flex-wrap:wrap}.muted{color:var(--muted);font-size:.85rem}.center{display:grid;place-items:center;height:100%}.stack>*+*{margin-top:.75rem}.board{display:flex;gap:.75rem;overflow-x:auto;padding-bottom:1rem;scroll-snap-type:x mandatory}.column{flex:0 0 82vw;max-width:320px;scroll-snap-align:start;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:.6rem;display:flex;flex-direction:column;gap:.5rem;min-height:120px}.column.dragover{outline:2px dashed var(--accent)}.column h3{display:flex;justify-content:space-between;gap:.5rem;margin:0}.column .count{color:var(--muted);font-weight:400}.item-card{background:var(--surface-2);border-radius:var(--radius-sm);padding:.7rem;cursor:pointer;border-left:3px solid var(--brand);transition:border-color .15s,background .15s,transform .06s}.item-card:hover{background:var(--surface-3)}.item-card:active{transform:scale(.995)}.item-card.project{border-left-color:var(--muted)}.item-card .ref{font-size:.7rem;color:var(--muted);letter-spacing:.08em;font-weight:700}.item-card .title{font-weight:600;margin:.15rem 0;line-height:1.3}@media(min-width:900px){.column{flex:0 0 280px}}.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}table{width:100%;border-collapse:collapse;font-size:.88rem}th,td{text-align:left;padding:.65rem .6rem;border-bottom:1px solid var(--border-soft);white-space:nowrap}tbody tr:last-child td{border-bottom:none}th{color:var(--muted);font-weight:700;font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;background:var(--brand-ink)}tbody tr{cursor:pointer;transition:background .1s}tbody tr:hover{background:var(--surface-2)}tbody tr:active{background:var(--surface-3)}.pill{display:inline-block;padding:.15rem .55rem;border-radius:999px;font-size:.72rem;font-weight:600;background:var(--surface-2);color:var(--muted)}.pill.open{background:#3a2f22;color:#fcd9a4}.pill.won{background:#14532d;color:#bbf7d0}.pill.lost{background:#4a1418;color:#f5b8bb}.pill.done{background:#2f2b2c;color:#cbc3c4}.pill.quote{background:var(--brand);color:#ffe8e9}.pill.project{background:#3f3a24;color:#f5edc4}.step{display:flex;align-items:center;gap:.6rem;padding:.55rem 0;border-bottom:1px solid var(--border)}.step:last-child{border-bottom:none}.step .name{flex:1}.step.done .name{color:var(--muted);text-decoration:line-through}.step.doing .name{color:var(--accent);font-weight:600}.step.skipped .name{color:var(--muted);font-style:italic}.step-dot{width:22px;height:22px;border-radius:50%;border:2px solid var(--border);flex:0 0 auto;display:grid;place-items:center;font-size:.7rem;background:transparent;padding:0;min-height:0}.step.done .step-dot{background:var(--green);border-color:var(--green);color:#052e16}.step.doing .step-dot{border-color:var(--accent)}.step.skipped .step-dot{border-style:dashed}.brand-lockup{text-align:center;margin-bottom:1.2rem}.brand-lockup .mark{font-size:2.6rem;font-weight:800;letter-spacing:.08em;color:var(--brand-bright);line-height:1;display:inline-flex;align-items:center;gap:.1em}.brand-lockup .mark .bolt{transform:skew(-12deg);display:inline-block;margin-left:.12em}.brand-lockup .sub{margin-top:.35rem;font-size:.7rem;letter-spacing:.28em;text-transform:uppercase;color:var(--muted)}.brand-lockup .rule{width:56px;height:3px;background:var(--brand);border-radius:2px;margin:.9rem auto 0}.toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.6rem}.seg{display:inline-flex;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden}.seg button{min-height:36px;padding:0 .7rem;border-radius:0;background:transparent;color:var(--muted);font-size:.82rem;font-weight:600;border-right:1px solid var(--border)}.seg button:last-child{border-right:none}.seg button:hover{background:var(--surface-2);color:var(--text)}.seg button.on{background:var(--brand);color:#fff}.seg button.on:hover{background:var(--brand-bright)}.range-title{margin:0 0 .7rem;font-size:1.15rem;font-weight:700;letter-spacing:-.01em}.roster-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}table.roster{border-collapse:separate;border-spacing:0;font-size:.8rem}table.roster th,table.roster td{padding:.3rem .25rem;border-bottom:1px solid var(--border-soft);border-right:1px solid var(--border-soft);text-align:center;white-space:nowrap}table.roster thead th{background:var(--brand-ink);color:var(--muted);position:sticky;top:0}table.roster .month-row th.month-band{background:var(--brand);color:#fff;font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:.3rem .5rem;border-right:2px solid var(--bg);position:sticky;top:0;z-index:2}table.roster tbody td.month-start,table.roster thead th.month-start{border-left:2px solid var(--brand-bright)}table.roster th.today,table.roster td.today{background:#a81c2329}table.roster th.today .dom{color:#fff;background:var(--brand-bright);border-radius:999px;display:inline-block;min-width:1.4em}table.roster th.weekend,table.roster td.weekend{background:#00000040}table.roster .dow{font-size:.6rem;opacity:.65;text-transform:uppercase}table.roster .dom{font-weight:700;font-size:.78rem}table.roster .sticky-col{position:sticky;left:0;z-index:3;background:var(--surface);text-align:left;min-width:92px;max-width:92px;overflow:hidden;text-overflow:ellipsis;border-right:2px solid var(--border)}table.roster thead .sticky-col{z-index:4;background:var(--brand-ink)}table.roster td.name{font-weight:600;font-size:.78rem}.roster-cell{cursor:pointer;min-width:34px;height:34px;vertical-align:middle;transition:background .1s}.roster-cell:hover{background:var(--surface-2)}.roster-cell:active{background:var(--surface-3)}table.roster.compact th,table.roster.compact td{padding:.15rem .05rem}table.roster.compact .roster-cell{min-width:15px;height:26px}table.roster.compact .dow{display:none}table.roster.compact .dom{font-size:.58rem;font-weight:600}table.roster.compact .chip{font-size:.5rem;padding:.05rem .1rem;border-radius:3px;margin:.5px 0;display:block}table.roster.compact .sticky-col{min-width:74px;max-width:74px;font-size:.7rem}table.roster.compact .month-row th.month-band{font-size:.65rem;letter-spacing:.04em}.chip{display:inline-block;padding:.1rem .32rem;border-radius:5px;font-size:.68rem;font-weight:700;line-height:1.35;margin:1px}.chip sup{font-size:.7em}.error{background:#4a1418;border:1px solid #7f2229;color:#f5b8bb;padding:.6rem .8rem;border-radius:var(--radius-sm);margin-bottom:.75rem;font-size:.9rem}.banner{background:#3f3a24;border:1px solid #6b6134;color:#f5edc4;padding:.6rem .8rem;border-radius:var(--radius-sm);margin-bottom:.75rem;font-size:.9rem}.empty{text-align:center;color:var(--muted);padding:2.5rem 1rem;background:var(--surface);border:1px dashed var(--border);border-radius:var(--radius)}.empty p{margin:.25rem 0}.modal-backdrop{position:fixed;inset:0;background:#0009;display:flex;align-items:flex-end;justify-content:center;z-index:50}.modal{background:var(--surface);border:1px solid var(--border);border-bottom:none;border-radius:var(--radius) var(--radius) 0 0;padding:1rem;width:100%;max-width:520px;max-height:90vh;overflow:auto;padding-bottom:calc(1rem + env(safe-area-inset-bottom));box-shadow:var(--shadow)}@media(min-width:640px){.modal-backdrop{align-items:center}.modal{border-radius:var(--radius);border-bottom:1px solid var(--border)}}.fab{position:fixed;right:1rem;bottom:calc(1rem + env(safe-area-inset-bottom));width:56px;height:56px;border-radius:50%;font-size:1.7rem;font-weight:400;padding:0;box-shadow:var(--shadow);z-index:30;display:grid;place-items:center;line-height:1}@media(max-width:560px){.content{padding:.7rem}.topbar{padding:.5rem .7rem}.tabs{padding:0 .5rem}.tabs button{padding:0 .6rem;font-size:.85rem}.card{padding:.75rem}h1{font-size:1.2rem}.range-title{font-size:1rem}.toolbar{gap:.4rem}.seg button{padding:0 .55rem;font-size:.78rem}table.roster .sticky-col{min-width:72px;max-width:72px;font-size:.72rem}table.roster.compact .sticky-col{min-width:58px;max-width:58px;font-size:.64rem}.fab{width:50px;height:50px;font-size:1.5rem;right:.75rem}}
