:root{--paper: #faf7f1;--paper-raised: #fffdf8;--ink: #1c2320;--ink-muted: #4f5b54;--forest: #1f4d36;--forest-strong: #14351f;--forest-soft: #e3ece5;--orange: #a8480a;--orange-strong: #8a3a06;--orange-soft: #fbeadc;--line: #ded6c8;--focus: #0b3ba8;--radius: 14px;--tap: 44px;--font-ui: "Trebuchet MS", "Lucida Grande", "Lucida Sans Unicode", Verdana, Geneva, sans-serif;--font-num: "Courier New", Courier, "DejaVu Sans Mono", monospace}*{box-sizing:border-box}html{background:var(--paper)}body{margin:0;color:var(--ink);background:var(--paper);font-family:var(--font-ui);font-size:17px;line-height:1.45;-webkit-text-size-adjust:100%}.num{font-family:var(--font-num);font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1;letter-spacing:0}.screen{max-width:34rem;margin:0 auto;padding:calc(env(safe-area-inset-top,0px) + 1rem) calc(env(safe-area-inset-right,0px) + 1rem) calc(env(safe-area-inset-bottom,0px) + 2rem) calc(env(safe-area-inset-left,0px) + 1rem)}.screen-loading{text-align:center;padding-top:25vh}.brand{margin:0;font-family:var(--font-num);font-size:1.5rem;font-weight:700;letter-spacing:.22em;color:var(--forest);text-transform:uppercase}.muted{margin:.2rem 0 0;color:var(--ink-muted);font-size:.9rem}.hint{margin:.4rem 0 0;color:var(--ink-muted);font-size:.85rem}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.noscript{margin:1rem;padding:1rem;border:2px solid var(--orange);border-radius:var(--radius);background:var(--orange-soft)}.form{margin:1rem 0 0}.field{margin:0 0 1rem}.field label{display:block;margin-bottom:.3rem;font-size:.9rem;font-weight:700;color:var(--forest-strong)}input,select{width:100%;min-height:var(--tap);padding:.55rem .7rem;border:2px solid var(--line);border-radius:var(--radius);background:var(--paper-raised);color:var(--ink);font-family:inherit;font-size:1rem}input.num{font-family:var(--font-num);font-variant-numeric:tabular-nums;font-size:1.15rem}input:focus-visible,select:focus-visible,button:focus-visible,[role=tab]:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.btn{min-height:var(--tap);min-width:var(--tap);padding:.6rem 1rem;border:2px solid transparent;border-radius:var(--radius);font-family:inherit;font-size:1rem;font-weight:700;cursor:pointer;touch-action:manipulation}.btn[disabled]{opacity:.55;cursor:default}.btn-primary{width:100%;color:#fff;background:var(--orange);border-color:var(--orange-strong)}.btn-primary:active:not([disabled]){background:var(--orange-strong)}.btn-secondary{color:var(--forest-strong);background:var(--paper-raised);border-color:var(--forest)}.btn-quiet{color:var(--forest-strong);background:transparent;border-color:var(--line);padding:.4rem .8rem;font-size:.9rem}.btn-quick{flex:1 1 0;color:#fff;background:var(--forest);border-color:var(--forest-strong);font-family:var(--font-num);font-size:1.1rem;padding:.6rem .2rem}.btn-quick:active:not([disabled]){background:var(--forest-strong)}.quick{display:flex;gap:.5rem;margin-top:.75rem}.form-entry{display:grid;grid-template-columns:1fr 1fr;gap:0 .75rem}.form-entry .btn-primary{grid-column:1 / -1}.auth-head{margin-bottom:1.25rem}.tabs{display:flex;gap:.4rem;margin-bottom:1rem;border-bottom:2px solid var(--line)}.tab{flex:1 1 0;min-height:var(--tap);padding:.5rem .4rem;border:2px solid transparent;border-bottom:none;border-radius:var(--radius) var(--radius) 0 0;background:transparent;color:var(--ink-muted);font-family:inherit;font-size:.95rem;font-weight:700;cursor:pointer}.tab[aria-selected=true]{color:var(--forest-strong);background:var(--forest-soft);border-color:var(--line)}.install-hint{margin-top:2rem;padding:.8rem 1rem;border:2px dashed var(--line);border-radius:var(--radius);color:var(--ink-muted);font-size:.88rem}.message{margin:0 0 1rem;padding:.7rem .9rem;border:2px solid var(--orange);border-radius:var(--radius);background:var(--orange-soft);color:var(--orange-strong);font-size:.92rem;font-weight:700}.status{margin:1rem 0;padding:.6rem .9rem;border:2px solid var(--line);border-radius:var(--radius);background:var(--paper-raised);font-size:.9rem;font-weight:700;color:var(--ink-muted)}.status[data-state=synced]{border-color:var(--forest);color:var(--forest-strong);background:var(--forest-soft)}.status[data-state=offline]{border-style:dashed;border-color:var(--ink-muted);color:var(--ink)}.status[data-state=open]{border-color:var(--orange);color:var(--orange-strong);background:var(--orange-soft)}.app-head-row{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.challenge-name{margin:.6rem 0 0;font-size:1.25rem;line-height:1.2;color:var(--forest-strong)}.cards-grid{display:grid;grid-template-columns:1fr 1fr;gap:.7rem}.card{padding:.8rem .7rem;border:2px solid var(--line);border-radius:var(--radius);background:var(--paper-raised);min-width:0}.card[data-self=true]{border-color:var(--forest)}.card-name{margin:0;font-size:1rem;font-weight:700;color:var(--forest-strong);overflow-wrap:anywhere}.card-role{margin:0 0 .4rem;font-size:.78rem;text-transform:uppercase;letter-spacing:.08em}.card-countdown{margin:.55rem 0 0}.card-remaining{margin:0;display:flex;align-items:baseline;gap:.4rem;flex-wrap:wrap}.card-remaining-count{font-size:clamp(1.9rem,9.5vw,2.4rem);font-weight:700;line-height:1;color:var(--forest-strong)}.card-remaining-label{font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-muted)}.card-goal .num{font-weight:700;color:var(--forest-strong)}.card-day{margin:.55rem 0 0}.card-today{margin:0;display:flex;align-items:baseline;gap:.15rem;flex-wrap:wrap}.card-today-count{font-size:clamp(1.2rem,5.5vw,1.4rem);font-weight:700;line-height:1;color:var(--forest-strong)}.card-slash,.card-target{font-size:.85rem;color:var(--ink-muted)}.bar{height:8px;margin:.45rem 0 0;border:1px solid var(--line);border-radius:999px;background:var(--forest-soft);overflow:hidden}.bar-fill{height:100%;width:0;background:var(--forest)}.card-pending{margin:.45rem 0 0;font-family:var(--font-num);font-size:.85rem;font-weight:700;color:var(--orange-strong)}.card-stats{margin:.6rem 0 0;display:grid;gap:.3rem}.card-stats .stat{display:flex;align-items:baseline;justify-content:space-between;gap:.4rem}.card-stats dt{font-size:.8rem;color:var(--ink-muted)}.card-stats dd{margin:0;font-size:1rem;font-weight:700;color:var(--forest-strong)}.block{margin-top:1.75rem}.block h2{margin:0;font-size:1.05rem;color:var(--forest-strong)}.list{list-style:none;margin:.75rem 0 0;padding:0;display:grid;gap:.6rem}.item{padding:.7rem .8rem;border:2px solid var(--line);border-radius:var(--radius);background:var(--paper-raised)}.item[data-state=pending]{border-color:var(--orange)}.item[data-state=blocked]{border-color:var(--orange-strong);background:var(--orange-soft)}.item[data-state=voided]{opacity:.72}.item-head{display:flex;align-items:baseline;gap:.6rem}.item-count{font-size:1.35rem;font-weight:700;color:var(--forest-strong)}.item-date{font-size:.9rem;color:var(--ink-muted)}.item-state{margin:.25rem 0 0;font-size:.85rem;color:var(--ink-muted)}.item[data-state=pending] .item-state,.item[data-state=blocked] .item-state{color:var(--orange-strong);font-weight:700}.item-actions{display:flex;gap:.5rem;margin-top:.6rem}.item-actions .btn{flex:1 1 0;font-size:.9rem;padding:.5rem .6rem}.app-foot{margin-top:2rem}.beerpong-score{margin:.5rem 0 0;display:flex;align-items:baseline;justify-content:center;flex-wrap:wrap;gap:.15rem .5rem;font-family:var(--font-num);font-variant-numeric:tabular-nums;font-size:clamp(1.5rem,7vw,2rem);font-weight:700;color:var(--forest-strong);text-align:center}.item-winner{font-size:1.05rem;font-weight:700;color:var(--forest-strong)}.dialog{width:min(28rem,calc(100vw - 2rem));padding:1.1rem;border:2px solid var(--forest);border-radius:var(--radius);background:var(--paper-raised);color:var(--ink)}.dialog::backdrop{background:#14351f73}.dialog-title{margin:0 0 .5rem;font-size:1.1rem;color:var(--forest-strong)}.dialog-text{margin:0 0 .9rem;font-size:.95rem}.dialog-actions{display:flex;gap:.6rem}.dialog-actions .btn{flex:1 1 0;width:auto}@media(max-width:22.5rem){body{font-size:16px}.screen{padding-left:calc(env(safe-area-inset-left,0px) + .75rem);padding-right:calc(env(safe-area-inset-right,0px) + .75rem)}.quick{flex-wrap:wrap}.quick .btn-quick{flex:1 1 40%}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
