:root{--bg:#fff;--ink:#111;--soft:#f0f0f0;--line:#9a9a9a;--mid:#555;color:var(--ink);background:var(--bg);font:15px/1.45 system-ui,-apple-system,sans-serif}@media (prefers-color-scheme:dark){:root{--bg:#121212;--ink:#eee;--soft:#262626;--line:#777;--mid:#aaa}}*{box-sizing:border-box}body{background:var(--bg);margin:0}h1,h2,h3,p{margin:0 0 10px}h3{font-size:15px;font-weight:600}h2{font-size:18px;font-weight:600}button,input,select,textarea{font:inherit;color:inherit;background:var(--bg);border:1px solid var(--line);border-radius:3px;max-width:100%;padding:7px 9px}button{cursor:pointer;min-height:36px}button:disabled{opacity:.5;cursor:default}button.on,button[aria-pressed=true]{background:var(--ink);color:var(--bg)}input,select,textarea{width:100%}textarea{min-height:70px}input[type=checkbox]{width:auto}.app{max-width:1100px;margin:0 auto;padding:14px}.between{justify-content:space-between;align-items:center;gap:8px;display:flex}.row{flex-wrap:wrap;align-items:center;display:flex}nav{border-bottom:1px solid var(--line);flex-wrap:wrap;gap:4px;margin:10px 0 14px;padding-bottom:10px;display:flex}nav button{flex:1;min-width:90px}.box{border:1px dashed var(--line);margin:10px 0;padding:12px}.field{margin:8px 0;display:block}.field>span{color:var(--mid);margin-bottom:3px;font-size:12px;display:block}.msg{background:var(--soft);border:1px solid var(--line);margin:8px 0;padding:8px 10px}.note{color:var(--mid);font-size:12px}.mono{font-variant-numeric:tabular-nums}.rings{flex-wrap:wrap;justify-content:space-around;gap:12px;margin:12px 0;display:flex}.ring{width:104px;height:104px;position:relative}.ring-text{text-align:center;flex-direction:column;justify-content:center;align-items:center;font-size:12px;display:flex;position:absolute;inset:0}.ring-text small{color:var(--mid);max-width:70px;font-size:10px}.squares{flex-wrap:wrap;gap:4px;margin:6px 0;display:flex}.sq{border:1px solid var(--line);background:var(--soft);width:16px;height:16px}.sq.completed{background:var(--ink)}.sq.missed{background:repeating-linear-gradient(45deg, var(--bg), var(--bg) 3px, var(--line) 3px, var(--line) 4px)}.sq.ambiguous{background:var(--line)}.sq.future,.sq.before_start,.sq.unavailable{background:var(--bg);border-style:dotted}.sq.open{background:var(--bg)}.cols{grid-template-columns:minmax(0,1.7fr) minmax(260px,1fr);gap:14px;display:grid}@media (width<=800px){.cols{grid-template-columns:1fr}}.cal{grid-template-columns:repeat(7,minmax(0,1fr));gap:3px;display:grid}.wk{text-align:center;color:var(--mid);padding:4px;font-size:12px}.day{text-align:left;overflow-wrap:anywhere;min-height:78px;padding:4px;font-size:12px;overflow:hidden}.day.sel{outline:2px solid var(--ink)}.day.out{opacity:.45}.day small{color:var(--mid);display:block}.entry{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:8px;padding:8px 0;display:flex}.entry:last-child{border-bottom:0}table{border-collapse:collapse;width:100%;font-size:13px}td,th{text-align:left;border-bottom:1px solid var(--line);padding:6px 3px}.modal{background:#00000073;justify-content:center;align-items:flex-start;padding:20px;display:flex;position:fixed;inset:0;overflow:auto}.modal>div{background:var(--bg);border:1px solid var(--ink);width:min(720px,100%);padding:16px}.steps>div{border:1px solid var(--line);margin:6px 0;padding:6px}.login{max-width:380px;margin:60px auto}
