:root{color-scheme:light dark;--bg:#fff;--text:#000;--dim:#aaa;--faint:#ccc;--inline:3ch;--gutter-left:max(var(--inline), env(safe-area-inset-left));--gutter-right:max(var(--inline), env(safe-area-inset-right))}@media (prefers-color-scheme:dark){:root{--bg:#000;--text:#fff;--dim:#979797;--faint:#6f6f6f}}*{box-sizing:border-box;border-radius:0}html,body{background:var(--bg);height:100%;color:var(--text);-webkit-text-size-adjust:100%;margin:0;font:12px/18px ui-monospace,SF Mono,Menlo,Consolas,monospace;overflow:hidden}h1,p{font-size:inherit;font-weight:inherit;margin:0}p:empty{display:none}button,input,textarea{font:inherit;color:inherit;-webkit-appearance:none;appearance:none}button{cursor:pointer;touch-action:manipulation;background:0 0;border:0}button:focus-visible{outline:2px solid var(--text);outline-offset:2px}.day-problems,.meals-row.error,.meals-why,.source-line.error,.source-why,.status-wrong.error,.login-error{background:var(--text);color:var(--bg)}.app{max-width:88ch;height:100dvh;padding-top:env(safe-area-inset-top);flex-direction:column;margin:0 auto;display:flex}.header{padding:0 var(--gutter-right) 0 var(--gutter-left);flex:none;justify-content:space-between;align-items:center;display:flex}.header-title{text-align:center;text-transform:lowercase}.header-relative{color:var(--dim)}.header-button{width:6ch;height:3lh;padding:0;&.previous{text-align:left;margin-left:-2ch;padding-left:2ch}&.next{text-align:right;margin-right:-2ch;padding-right:2ch}&:disabled{visibility:hidden}}@media (display-mode:standalone) and (height>=500px){.header,.source-bar{padding-top:2lh}}.day{min-height:0;padding:1lh var(--gutter-right) 1lh var(--gutter-left);flex:1;overflow-y:auto}.day-problems{margin:0 -1ch 1lh;padding:0 1ch}.headline{align-items:flex-end;gap:1ch;height:4lh;margin-bottom:1lh;display:flex}.headline-number{flex:none;display:block}.goal{margin-bottom:1lh}.goal-bar{height:1lh;position:relative}.goal-track{width:100%;height:100%;display:block}.goal-laps{border-left:1px solid var(--bg);background:var(--text);color:var(--bg);padding:0 .5ch;position:absolute;top:0;bottom:0;right:0}.goal-lines{fill:var(--faint);&.lapped{fill:var(--text)}}.goal-under{flex-wrap:wrap;justify-content:space-between;gap:0 2ch;display:flex}.goal-sigil{width:2ch;display:inline-block}.goal-mark{background:var(--text);width:2px;box-shadow:0 0 0 1px var(--bg);margin-left:-1px;position:absolute;top:-3px;bottom:-3px}.source-bar,.day-source,.day-editor{display:none}.app.viewing{& .header,& .day-standing,& .day-entries{display:none}& .source-bar{display:flex}& .day{flex-direction:column;align-items:stretch;padding-block:0;display:flex;overflow:hidden}& .day-source{display:block}}.app.editing{& .source-leave.back,& .source-actions.reading,& .day-source,& .suggestions,& .prompt-form{display:none}& .source-leave.cancel,& .source-actions.editing{display:block}& .day-editor{display:flex}}.app.asking{& .source-leave.cancel,& .source-name,& .source-actions.editing{display:none}& .source-question,& .source-actions.asking{display:block}}.source-bar{padding-right:var(--gutter-right);padding-left:var(--gutter-left);flex:none;justify-content:space-between;align-items:center;gap:2ch}.source-leave{text-align:left;white-space:nowrap;height:3lh;margin-left:-2ch;padding:0 0 0 2ch;&.cancel{display:none}}.source-question{text-overflow:ellipsis;white-space:nowrap;min-width:0;padding-block:1lh;display:none;overflow:hidden}.source-file{white-space:nowrap;align-items:center;min-width:0;display:flex}.source-name{text-overflow:ellipsis;min-width:0;overflow:hidden}.source-actions{white-space:pre;flex:none;&.editing,&.asking{display:none}}.source-action{color:var(--text);margin:-1lh 0;padding:1lh 0;text-decoration:none;&.danger{font-weight:700}}.day-editor{min-height:0;scroll-padding-left:calc(var(--digits) * 1ch + 3ch);flex:1;margin-inline:-1ch;overflow:auto}.editor-gutter{z-index:1;width:calc(var(--digits) * 1ch + 3ch);height:calc(var(--lines) * 1lh + 3lh);background:var(--bg);text-align:right;white-space:pre;flex:none;min-height:100%;padding:1lh 2ch 1lh 1ch;position:sticky;left:0}.editor-text{width:calc(var(--longest) * 1ch + 3ch);height:calc(var(--lines) * 1lh + 3lh);white-space:pre;resize:none;background:0 0;border:0;flex:1 0 auto;min-height:100%;margin:0;padding:1lh 1ch 1lh 0;overflow:hidden;&:focus{outline:none}}.day-source{flex:1;min-height:0;margin-inline:-1ch;padding-block:1lh;overflow:auto;container-type:inline-size}.source-lines{--number:calc(var(--digits) * 1ch + 3ch);width:max-content;min-width:100%}.source-line{grid-template-columns:var(--number) auto;padding-right:1ch;display:grid;&.error .source-n{background:inherit;color:inherit}}.source-n{background:var(--bg);text-align:right;padding:0 2ch 0 1ch;position:sticky;left:0}.source-text{white-space:pre}.source-why{width:100cqi;padding:0 1ch 0 var(--number);position:sticky;left:0}.day-period{display:none}.app.period{& .day-standing,& .day-entries{display:none}& .day-period{display:block}}.period-kinds{margin-bottom:1lh}.period-kind{margin:-1lh 0;padding:1lh 0;&.chosen{font-weight:700}}.period-average{grid-template-columns:2ch minmax(0,1fr);display:grid}.period-part{display:inline-block}.period-counted,.period-rows{margin-top:1lh}.period-row{grid-template-columns:minmax(0, 1fr) var(--cells,3ch 4ch 3ch 4ch);text-align:left;align-items:baseline;width:100%;padding:0;display:grid}.period-label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.period-note{color:var(--dim)}.period-mark{text-align:center}.period-num{text-align:right;font-variant-numeric:tabular-nums}.forecast-pace{padding-left:2ch}.forecast-pace+.forecast-burn{margin-top:1lh}.forecast-note{color:var(--dim)}.forecast-since{margin-top:1lh;font-weight:700}.forecast-trend{text-indent:-2ch;padding-left:2ch;& .period-part{text-indent:-2ch;padding-left:2ch}}.meals{margin-top:1lh}.meals-row{grid-template-columns:minmax(0, 1fr) var(--numbers,5ch 5ch) 1ch;align-items:baseline;gap:2ch;display:grid;&.meal{margin-top:1lh;font-weight:700}&.error{margin:0 -1ch;padding:0 1ch}&.doomed{background:var(--text);color:var(--bg);margin:0 -1ch;padding:0 1ch;& .meals-food{text-decoration:line-through}}&.changing{background:var(--text);color:var(--bg);margin:0 -1ch;padding:0 1ch}}.meals-why{margin:0 -1ch;padding:0 1ch}.meals-food{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;&.takeable{text-align:left;padding:0}}.meals-num{text-align:right;font-variant-numeric:tabular-nums}.meals-minus{color:var(--dim);text-align:right;margin:-.5lh -2ch;padding:.5lh 2ch}.meals-confirm{grid-column:2/-1;justify-content:flex-end;gap:2ch;display:flex}.meals-button{margin:-.5lh 0;padding:.5lh 0;&.danger{font-weight:700}}.prompt{padding-bottom:max(1lh, env(safe-area-inset-bottom));flex:none;position:relative}.prompt-form{margin:0 var(--gutter-right) 0 var(--gutter-left);background:linear-gradient(var(--text), var(--text)) left 0 top .5lh / 100% 1px no-repeat, linear-gradient(var(--text), var(--text)) left 0 bottom .5lh / 100% 1px no-repeat;align-items:center;gap:1ch;display:flex}.prompt-sigil{flex:none;width:1ch}.status{height:1lh;padding-right:var(--gutter-right);padding-left:var(--gutter-left);display:grid;&:has(.status-wrong:not(:empty)) :is(.status-preview,.status-hints),&:has(.status-preview:not(:empty)) .status-hints{display:none}}.status-wrong,.status-preview,.status-hints{text-overflow:ellipsis;white-space:nowrap;grid-area:1/1;min-width:0;overflow:hidden}.status-wrong.error{justify-self:start;margin:0 0 0 -1ch;padding:0 1ch}.status-hints{color:var(--dim);&.guessed .status-hint.usual,&.choosing .status-hint.usual,&.changing .status-hint.usual{display:none}&.guessed .status-hint.guess,&.choosing .status-hint.choose,&.changing .status-hint.change{display:inline}& .status-verb.delete,&.deleting .status-verb.change{display:none}&.deleting .status-verb.delete{display:inline}&.editing .status-hint:not(.edit){display:none}&.editing .status-hint.edit{display:inline}}.status-hint{&.guess,&.choose,&.change,&.edit{display:none}}.status-key{font-weight:inherit}.status-touch-hint{display:none}@media (hover:none){.status-key-hint,.suggestion-key-hint{display:none}.status-touch-hint{display:inline}}.suggestions{max-height:max(4lh,min(10lh,round(down,100dvh - 14lh,2lh)));padding:0 var(--gutter-right) 0 var(--gutter-left);background:var(--bg);scrollbar-width:none;flex-direction:column;display:none;position:absolute;bottom:100%;left:0;right:0;overflow:hidden auto;&::-webkit-scrollbar{display:none}.prompt:focus-within &:not(:empty,.closed){display:flex}@media (hover:hover){.prompt:has(.prompt-input:placeholder-shown) &{display:none}}}.suggestion{grid-template-columns:2ch minmax(0, min(var(--name,60%), 60%)) minmax(0, 1fr);text-align:left;flex:none;align-items:center;width:100%;min-height:2lh;padding:0;display:grid;&.chosen{font-weight:700}&.guessed,&.total,&.waiting{grid-template-columns:2ch minmax(0,1fr) auto}&.guessed,&.total,&.waiting,&.note{min-height:1lh}&.note,&.failed{padding-left:2ch;display:block}&.failed{min-height:1lh}}.suggestion-name,.suggestion-about{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.suggestion-about{padding-left:1ch;.takeable &{white-space:normal;line-clamp:2;-webkit-line-clamp:2;-webkit-box-orient:vertical;padding-left:2ch;display:-webkit-box}}.prompt-input{background:0 0;border:0;flex:1;min-width:0;padding:1lh 0;&::placeholder{color:var(--dim);opacity:1}&:focus{outline:none}}.prompt-keys{grid-template-columns:repeat(6,minmax(0,1fr));display:none;@media (hover:none){.app:has(.prompt-input:focus,.editor-text:focus) &{display:grid}}}.prompt-key{min-height:3lh}@media (width>=900px) and (height>=500px){:root{--page:144ch;--standing:58ch;--header:3lh;--gutter-left:max(var(--inline), env(safe-area-inset-left), calc((100vw - var(--page)) / 2));--gutter-right:max(var(--inline), env(safe-area-inset-right), calc((100vw - var(--page)) / 2))}@media (display-mode:standalone){:root{--header:5lh}}.app{max-width:none;position:relative}.header{top:env(safe-area-inset-top);left:var(--gutter-left);width:var(--standing);padding-left:0;padding-right:0;position:absolute}.day{grid-template-columns:var(--standing) minmax(0, 1fr);align-items:start;gap:0 8ch;display:grid}.day-standing{top:calc(1lh + var(--header));margin-top:var(--header);position:sticky}.meals{margin-top:0}.day-period{margin-top:var(--header);grid-column:1}.suggestions{max-height:6lh}.suggestion{grid-template-columns:2ch minmax(0,38ch) minmax(0,1fr);min-height:1lh;& .suggestion-about{line-clamp:1;-webkit-line-clamp:1}&.waiting{grid-template-columns:2ch minmax(0,1fr) auto}&.guessed,&.total{grid-template-columns:2ch minmax(0,38ch) 24ch;& .suggestion-about{text-align:right}}}}@media (hover:hover){.meals-minus:hover{color:var(--text)}.meals-food.takeable:hover,.app:not(.period) .header-week:hover,.period-kind:hover,.period-row.takeable:hover .period-label,.meals-button:hover,.login-button:hover,.source-action:hover{text-decoration:underline}}.login{padding:1lh var(--inline);justify-content:center;align-items:center;display:flex}.login-form{flex-direction:column;gap:1lh;width:100%;max-width:44ch;display:flex}.login-title{font-weight:700}.login-input{border:1px solid var(--text);background:var(--bg);flex:none;width:100%;min-width:0;height:3lh;padding:0 2ch;&::placeholder{color:var(--dim);opacity:1}&:focus{outline:none}&.hidden{opacity:0;border:0;width:1px;height:1px;padding:0;position:absolute}}.login-error{margin:0 -1ch;padding:0 1ch}.login-button{flex:none;height:3lh;padding:0 2ch;font-weight:700}
