:root{--yellow:#ffea00;--brown:#281717;--cream:#fefaee;--bg:var(--brown);--fg:var(--cream);--muted:#a8968c;--faint:#4a3634;--pick:var(--yellow);--on-pick:var(--brown);--solid:var(--yellow);--on-solid:var(--brown);--live:#3dd45e;--warn:#ff8a80;--sans:"Instrument Sans",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;--display:"Sherborne","Newsreader",Georgia,serif;color-scheme:dark}*{box-sizing:border-box}body,html{margin:0}body{background:var(--bg);color:var(--fg);font:15px/1.45 var(--sans);letter-spacing:.01em;-webkit-font-smoothing:antialiased}a{color:inherit}.wrap{max-width:1440px;margin:0 auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}header .wrap{display:flex;justify-content:space-between;align-items:center;gap:12px;padding-block:18px 14px;flex-wrap:wrap}.title{margin:0;display:flex;align-items:baseline;gap:10px;font:300 1.35rem/1 var(--display)}.logo{display:inline-block;height:24px;aspect-ratio:1322.88/324.615;background:var(--fg);-webkit-mask:url(/brand/solea-logo.svg) center/contain no-repeat;mask:url(/brand/solea-logo.svg) center/contain no-repeat;align-self:center}.title a,nav{display:flex}nav{gap:20px}.tab,nav{align-items:center}.tab{background:none;border:0;padding:4px 0;color:var(--fg);font:inherit;cursor:pointer;text-decoration:none;display:inline-flex;gap:8px;text-underline-offset:5px}.tab[aria-current=page],.tab[aria-selected=true]{text-decoration:underline}.dot{width:9px;height:9px;border-radius:50%;background:var(--live);display:inline-block}main{padding-block:4px 48px}footer .wrap{padding-block:24px 32px;color:var(--muted);font-size:.75rem;border-top:1px solid var(--faint)}.stack,section{display:flex;flex-direction:column;gap:8px}.label{display:flex;justify-content:space-between;gap:12px;text-transform:uppercase;font-weight:500;font-size:.8rem;margin-top:22px;letter-spacing:.04em}.label span:last-child{text-transform:none;font-weight:400}.label:first-child{margin-top:0}.grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:8px;gap:8px}.grid.one{grid-template-columns:1fr}.grid.three{grid-template-columns:repeat(3,1fr)}.grid.seven{grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.box{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--fg);border-radius:6px;background:var(--bg);color:var(--fg);font:inherit;min-height:72px;padding:8px 10px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;text-align:center;cursor:pointer;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-decoration:none}.box.sm{min-height:54px}.box small{color:var(--muted);font-size:.8rem}.box[aria-pressed=true]{background:var(--pick);border-color:var(--pick);color:var(--on-pick)}.box[aria-pressed=true] small{color:inherit;opacity:.7}.box:disabled{border-color:var(--faint);color:var(--faint);cursor:not-allowed}.box.taken:disabled{background:color-mix(in srgb,var(--faint) 40%,var(--bg));border-color:transparent;color:var(--muted)}.box.taken small{font-size:.7rem;text-transform:uppercase;letter-spacing:.06em}.box.fill{background:var(--solid);border-color:var(--solid);color:var(--on-solid);font-weight:500}.box.fill:disabled{background:var(--bg);border-color:var(--faint);color:var(--faint)}.box.cal{min-height:66px;padding:6px 2px}.box.cal b{font:300 1.35rem/1.1 var(--display)}.box.cal.today{border-width:2px}:focus-visible{outline:2px solid var(--fg);outline-offset:2px}.strip{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px;scrollbar-width:thin}.strip .box{flex:0 0 72px}.strip .box b{font:300 1.5rem/1.1 var(--display)}.hint{color:var(--muted);padding:6px 0}.field{font:inherit;font-size:max(16px,1em);color:var(--fg);background:var(--bg);border:1px solid var(--faint);border-radius:0;padding:12px 14px;width:100%}.field::placeholder{color:var(--faint)}textarea.field{min-height:76px;resize:vertical}.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.receipt{filter:drop-shadow(0 1px 2px rgb(40 23 23/.18))}.receipt .paper{--fg:var(--brown);--muted:#84726a;--tooth:7px;background:var(--cream);color:var(--fg);padding:calc(var(--tooth) + 16px) 18px calc(var(--tooth) + 18px);font:13px/1.5 ui-monospace,SF Mono,Menlo,Consolas,monospace;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;letter-spacing:0;-webkit-mask:conic-gradient(from -45deg at bottom,#0000,#000 1deg 89deg,#0000 90deg) bottom /calc(2 * var(--tooth)) 51% repeat-x,conic-gradient(from 135deg at top,#0000,#000 1deg 89deg,#0000 90deg) top /calc(2 * var(--tooth)) 51% repeat-x;mask:conic-gradient(from -45deg at bottom,#0000,#000 1deg 89deg,#0000 90deg) bottom /calc(2 * var(--tooth)) 51% repeat-x,conic-gradient(from 135deg at top,#0000,#000 1deg 89deg,#0000 90deg) top /calc(2 * var(--tooth)) 51% repeat-x}.r-head{display:flex;flex-direction:column;align-items:center;gap:6px;padding-bottom:12px;margin-bottom:10px;border-bottom:1px dashed var(--fg)}.r-head .logo{height:20px}.r-head small{color:var(--muted);font-size:.75rem}.r-line{display:flex;justify-content:space-between;gap:12px;min-width:0}.r-line>:first-child{overflow-wrap:anywhere}.r-line b{font-weight:600}.r-items{list-style:none;margin:6px 0 0;padding:0}.r-total{margin-top:10px;font-weight:600;font-size:1rem}.r-foot,.r-total{padding-top:10px;border-top:1px dashed var(--fg)}.r-foot{margin:14px 0 0;text-align:center;text-transform:uppercase;letter-spacing:.2em;font-size:.75rem}.r-empty{text-align:center;padding:6px 0}.note,.r-empty{margin:0;color:var(--muted)}.note{font-size:.85rem}.check{display:flex;gap:10px;align-items:flex-start;font-size:.9rem;cursor:pointer}.check input{accent-color:var(--fg);width:18px;height:18px;margin:1px 0 0;flex:none}.err{color:var(--warn);font-size:.9rem;margin:0}.panel{border:1px solid var(--fg);border-radius:6px;padding:20px 16px;display:flex;flex-direction:column;gap:6px}.panel.center{align-items:center;text-align:center;padding:24px 16px}.panel p{margin:0}.sub{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);grid-gap:8px;gap:8px;margin-bottom:6px}.sub .box{min-height:46px;font-size:.85rem}.wk{display:inline-flex;gap:10px;align-items:center}.link{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;padding:0 6px;font:inherit;color:inherit;cursor:pointer}.bk{border:1px solid var(--fg);border-radius:6px;padding:12px 14px;display:flex;flex-direction:column;gap:4px;min-width:0}.bk.done{border-color:var(--faint);color:var(--muted)}.bk .top{display:flex;justify-content:space-between;gap:12px;font-weight:500;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.bk .meta{color:var(--muted);font-size:.85rem;overflow-wrap:anywhere}.tag{font-size:.8rem}.actions{display:flex;gap:8px;margin-top:6px}.actions .box{min-height:38px;flex:1 1;font-size:.85rem}.actions .box.danger{color:var(--warn);border-color:var(--warn)}button.bk{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--bg);color:var(--fg);font:inherit;text-align:left;cursor:pointer}.link.danger{color:var(--warn);margin-left:6px}.ok{margin:0;border:1px solid var(--pick);border-radius:6px;padding:12px 14px}table.sheet{width:100%;border-collapse:collapse;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;border-top:1px solid var(--fg)}.sheet td,.sheet th{padding:10px 0;border-bottom:1px solid var(--faint);text-align:left;vertical-align:middle}.sheet th{width:34%;font-weight:500;white-space:nowrap;padding-right:12px}.sheet td{overflow-wrap:anywhere}.sheet td small{color:var(--muted)}.sheet td .link:not(.danger){padding:0;text-decoration:underline;text-underline-offset:4px}.sheet tr.taken td{font-weight:500}.sheet tr.past,.sheet tr.past th{color:var(--muted);font-weight:400}.sheet tr.on td,.sheet tr.on th{border-bottom-color:transparent}.sheet tr.on th{color:var(--pick)}.sheet .form-row td{padding:0 0 14px}.free{display:flex;justify-content:space-between;border:1px dashed var(--faint);border-radius:6px;padding:10px 14px;color:var(--muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.hrow{display:grid;grid-template-columns:1.1fr 1fr 1fr;grid-gap:8px}.hrow,.hrow label{gap:8px;align-items:center}.hrow label{display:flex;cursor:pointer}.hrow input[type=checkbox]{accent-color:var(--fg);width:16px;height:16px}.hrow .field{padding:8px 10px}.offs{display:flex;flex-wrap:wrap;gap:8px}.off{border:1px solid var(--fg);border-radius:6px;padding:6px 10px;display:inline-flex;gap:10px;align-items:center}.row{display:flex;gap:8px;align-items:stretch}.row .field{flex:1 1;min-width:0}.row .box{min-height:auto;padding:0 18px}.kv{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:10px 0;border-bottom:1px solid var(--faint);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.kv b{font:300 1.4rem/1.1 var(--display)}.kv small{color:var(--muted);font-size:.8rem}.chart{position:relative;margin-top:4px}.chart svg{display:block;width:100%;height:auto}.chart .grid-l{stroke:var(--faint);stroke-width:1}.chart .ax{fill:var(--muted);font:10px var(--sans)}.chart .ax.now{fill:var(--fg);font-weight:700}.chart .earned{fill:var(--fg)}.chart .ahead{fill:var(--bg);stroke:var(--fg);stroke-width:1}.chart .hit{fill:transparent}.chart .hit:hover{fill:var(--fg);fill-opacity:.06}.tip{position:absolute;pointer-events:none;background:var(--fg);color:var(--bg);padding:6px 8px;border-radius:4px;font-size:.75rem;white-space:pre;transform:translate(-50%,calc(-100% - 8px));z-index:2}.legend{display:flex;gap:16px;font-size:.8rem;color:var(--muted);align-items:center;flex-wrap:wrap}.sw{display:inline-block;width:10px;height:10px;border:1px solid var(--fg);border-radius:2px;margin-right:6px;vertical-align:-1px}.sw.solid{background:var(--fg)}.tbl{overflow-x:auto}table.t{width:100%;border-collapse:collapse;font-size:.85rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.t td,.t th{padding:7px 0 7px 12px;border-bottom:1px solid var(--faint);text-align:right}.t td:first-child,.t th:first-child{text-align:left;padding-left:0}.t th{font-weight:500;color:var(--muted)}details summary{cursor:pointer;color:var(--muted);font-size:.85rem;padding:8px 0}.info p{margin:0 0 6px}.info ul{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:6px}@media (max-width:380px){.hrow{grid-template-columns:1fr 1fr}.hrow label{grid-column:1/-1}}