:root{--bg:#101114;--panel:#f8f2e6;--panel-soft:#1a1c22;--ink:#101114;--ink-inverse:#fbf5e8;--muted:#4f5563;--line:#06070a;--teal:#13c7b6;--teal-soft:#083d3d;--blue:#3f63ff;--blue-soft:#111d55;--red:#ff5a3d;--red-soft:#421815;--pink:#f45bb6;--yellow:#ffe21f;--yellow-soft:#473d08;--cream:#fff7d1;--shadow:8px 8px 0 #06070a;--small-shadow:4px 4px 0 #06070a;color:var(--ink);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;font-family:Arial Rounded MT Bold,Trebuchet MS,Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{overscroll-behavior-y:none;background:var(--bg);min-width:320px;min-height:100svh;margin:0}button,input{font:inherit}.shell{min-height:100svh;padding:max(28px, env(safe-area-inset-top)) max(28px, env(safe-area-inset-right)) max(28px, env(safe-area-inset-bottom)) max(28px, env(safe-area-inset-left))}.shell.centered{place-items:center;display:grid}h2,p,ul{margin:0}.srOnly{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}ul{padding:0;list-style:none}.screenLoader{border:4px solid var(--line);background:var(--yellow);width:72px;height:72px;color:var(--ink);box-shadow:var(--shadow);border-radius:18px;place-items:center;display:grid}.screenLoader svg{animation:1.1s linear infinite spin}.emptyState{border:3px solid var(--line);background:var(--cream);max-width:28rem;color:var(--ink);box-shadow:var(--shadow);text-align:center;border-radius:8px;padding:18px 20px;font-size:18px;font-weight:900;line-height:1.35}.loginShell{min-height:100svh;padding:max(24px, env(safe-area-inset-top)) max(24px, env(safe-area-inset-right)) max(24px, env(safe-area-inset-bottom)) max(24px, env(safe-area-inset-left));background:var(--bg);place-items:center;transition:background-color .5s;display:grid}.loginShell.success{background:var(--teal)}.loginForm{grid-template-columns:minmax(0,1fr) 42px;gap:10px;width:280px;max-width:100%;transition:opacity .3s,transform .3s;display:grid}.loginForm.success{pointer-events:none;opacity:0;transform:translateY(4px)}.passwordInput{border:3px solid var(--line);background:var(--cream);width:100%;min-width:0;height:42px;color:var(--ink);border-radius:8px;outline:none;padding:0 12px;font-size:13px;font-weight:900;transition:background-color .3s,border-color .3s}.passwordInput::placeholder{color:var(--muted)}.passwordInput:focus{border-color:var(--line);box-shadow:3px 3px 0 var(--line);background:#fff}.passwordButton{border:3px solid var(--line);background:var(--teal);width:42px;height:42px;color:var(--ink);cursor:pointer;border-radius:7px;flex:none;justify-content:center;align-items:center;padding:0;transition:background-color .16s,color .16s,opacity .16s,transform .16s;display:inline-flex}.passwordButton:hover:not(:disabled){background:var(--pink);color:var(--ink);box-shadow:3px 3px 0 var(--line);transform:translate(-1px,-1px)}.passwordButton:disabled{cursor:not-allowed;opacity:.45;transform:none}.passwordButton svg{transition:opacity .16s}.passwordButton svg.submitting{opacity:.35}.loginError{color:#fff;overflow-wrap:anywhere;grid-column:1/-1;max-width:100%;min-height:2.8em;margin-top:2px;font-size:12px;font-weight:780;line-height:1.4;transition:color .3s}.saveErrorBanner{border:3px solid var(--line);background:var(--red);color:var(--ink);box-shadow:var(--small-shadow);border-radius:8px;margin-bottom:14px;padding:12px 14px;font-size:13px;font-weight:900;line-height:1.35}.pullIndicator{height:0;color:var(--ink);justify-content:center;align-items:flex-end;display:flex;overflow:hidden}.pullIndicator svg{margin-bottom:12px}.pullIndicator svg.isRefreshing{animation:.9s linear infinite spin}.projectGrid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));align-items:start;gap:18px;display:grid}.projectCard{isolation:isolate;grid-template-rows:auto auto 1fr;gap:12px;min-width:0;padding:18px;display:grid;position:relative}.projectCard:before{content:"";z-index:-1;background:var(--panel);border:4px solid var(--line);box-shadow:var(--shadow);transform:rotate(var(--tilt,0deg));border-radius:8px;position:absolute;inset:0}::view-transition-group(*){animation-duration:.48s;animation-timing-function:cubic-bezier(.22,1,.36,1)}@media (prefers-reduced-motion:reduce){::view-transition-group(*){animation-duration:0s}}.projectCard:nth-child(5n+1){--tilt:-.35deg}.projectCard:nth-child(5n+3){--tilt:.35deg}.cardHeader{min-width:0}.cardHeader h2{align-items:center;gap:.4em;min-width:0;font-size:26px;font-weight:950;line-height:1;display:flex}.cardHeader h2>span{overflow-wrap:anywhere;min-width:0}.projectFavicon{object-fit:contain;flex:0 0 1em;width:1em;height:1em;display:block}.statusStrip{gap:8px;display:grid}.ciStatusRow{grid-template-columns:minmax(0,1fr) 38px;align-items:center;gap:8px;min-width:0;display:grid}.statusItem{border:3px solid var(--line);min-width:0;min-height:38px;color:var(--ink);background:#fffaf0;border-radius:8px;align-items:center;gap:8px;padding:0 11px;font-size:12px;font-weight:950;display:flex}.statusLink,.statusText{overflow-wrap:anywhere;align-items:center;gap:5px;min-width:0;display:inline-flex}.statusLink{color:inherit;text-underline-offset:3px;text-decoration-thickness:2px}.statusItem .not-configured{color:#30333c}.ciResult{border:3px solid var(--line);cursor:pointer;width:38px;height:38px;min-height:38px;font:inherit;border-radius:7px;flex:none;place-self:stretch stretch;place-items:center;padding:0;display:inline-grid}.ciResult.passing{background:var(--teal);color:var(--ink)}.ciResult.failing{background:var(--red);color:var(--ink)}.ciResult.running{background:var(--blue);color:var(--ink-inverse)}.ciResult.running svg{animation:.9s linear infinite spin}.ciResult.unknown{background:var(--yellow);color:var(--ink)}.ciResult.loading{background:#fffaf0}.loadingSpinner{border:3px solid var(--line);border-right-color:#0000;border-radius:50%;width:17px;height:17px;animation:.7s linear infinite spin}.workList{align-content:start;gap:12px;min-width:0;display:grid}.workList ul{gap:0;display:grid}.workItem{border:3px solid var(--line);min-width:0;color:var(--ink);box-shadow:var(--small-shadow);border-radius:8px;grid-template-rows:1fr;padding:6px 9px 6px 6px;animation:.22s both workItemIn;display:grid;overflow:hidden}.workItem:not(:last-child){margin-bottom:12px}.workItem.isExiting{pointer-events:none;animation:.24s cubic-bezier(.4,0,1,1) both workItemOut}.workItemContent{grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:8px;min-width:0;min-height:0;display:grid;overflow:hidden}.workItem.todo{background:var(--yellow)}.workItem.bug{background:var(--pink)}.doneButton{border:0;border:2px solid var(--line);background:0 0;background:var(--cream);min-width:58px;height:28px;color:var(--ink);cursor:pointer;border-radius:7px;justify-content:center;align-items:center;padding:0;font-size:11px;font-weight:950;display:inline-flex}.doneButton:hover{background:color-mix(in srgb, var(--cream) 88%, var(--teal));transform:translate(-1px,-1px)}.workKindIcon{border-radius:7px;flex:none;place-items:center;width:28px;height:28px;display:grid}.workKindIcon.todo,.workKindIcon.bug{background:var(--cream);color:var(--ink)}.choiceButton{border:3px solid var(--line);background:var(--cream);min-width:0;height:32px;color:var(--ink);cursor:pointer;border-radius:7px;flex:0 auto;justify-content:center;align-items:center;gap:5px;padding:0 9px;font-size:11px;font-weight:950;transition:background-color .16s,color .16s,transform .16s;display:inline-flex}@media (hover:hover) and (pointer:fine){.choiceButton.todo:hover:not(:disabled){background:var(--yellow);color:var(--ink)}.choiceButton.bug:hover:not(:disabled){background:var(--pink);color:var(--ink)}.choiceButton:hover:not(:disabled){box-shadow:3px 3px 0 var(--line);transform:translate(-1px,-1px)}}.choiceButton.compact{width:32px;padding:0}.choiceButton:disabled{cursor:not-allowed;opacity:.45;transform:none}.workText{overflow-wrap:anywhere;white-space:normal;min-width:0;font-size:13px;font-weight:850;line-height:1.35}.addWork{border:3px dashed var(--line);background:#fff7d1b3;border-radius:8px;flex-wrap:wrap;align-items:center;gap:8px;min-height:40px;padding:5px;transition:background-color .18s,border-color .18s;display:flex}.addWork:not(.isComposing) .choiceButton{flex:1 1 0}.addWork.isComposing{border-color:var(--line);background:var(--cream);grid-template-columns:minmax(0,1fr) 32px 32px;min-height:34px;padding:3px;display:grid}.addWork input{min-width:0;height:32px;color:var(--ink);background:0 0;border:0;border-radius:7px;outline:none;padding:0 8px;font-size:12px;font-weight:850;animation:.16s both fadeIn}.addWork input:focus{box-shadow:inset 0 0 0 2px var(--line);background:#fff}.loadingDots{letter-spacing:0;width:3ch;font-family:monospace;font-size:15px;line-height:1;display:inline-block}.loadingDots span:nth-child(2){animation:1.2s step-end infinite revealSecondDot}.loadingDots span:nth-child(3){animation:1.2s step-end infinite revealThirdDot}@keyframes revealSecondDot{0%,32%{opacity:0}33%,to{opacity:1}}@keyframes revealThirdDot{0%,65%{opacity:0}66%,to{opacity:1}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes workItemIn{0%{opacity:0;grid-template-rows:0fr;padding-top:0;padding-bottom:0;transform:translateY(-3px)}to{opacity:1;grid-template-rows:1fr;padding-top:6px;padding-bottom:6px;transform:translateY(0)}}@keyframes workItemOut{45%{opacity:0;transform:translateY(-3px)scale(.985)}to{opacity:0;border-top-width:0;border-bottom-width:0;grid-template-rows:0fr;margin-bottom:0;padding-top:0;padding-bottom:0;transform:translateY(-3px)scale(.985)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(2px)}to{opacity:1;transform:translateY(0)}}@media (width<=760px){.shell{padding:max(18px, env(safe-area-inset-top)) max(18px, env(safe-area-inset-right)) max(18px, env(safe-area-inset-bottom)) max(18px, env(safe-area-inset-left))}}@media (width<=460px){.shell{padding:max(14px, env(safe-area-inset-top)) max(14px, env(safe-area-inset-right)) max(14px, env(safe-area-inset-bottom)) max(14px, env(safe-area-inset-left))}.projectGrid,.statusStrip{grid-template-columns:1fr}.projectGrid{grid-template-columns:minmax(0,1fr)}}
