:root{--bg: #ffffff;--chrome: #f4f4f5;--line: #e6e6e8;--line2: #cfd0d4;--fill: #ececee;--fill-weak: #f6f6f7;--t1: #1d1d1f;--t2: #55565b;--t3: #8b8c92;--accent: #3b7bd8;color:var(--t1);background:var(--bg);font:13px/1.5 Segoe UI,PingFang SC,Microsoft YaHei,system-ui,sans-serif}body{margin:0}h3{margin:0;font-size:15px;font-weight:600}button,input{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:default;opacity:.4}.frame{display:flex;min-height:100vh}.side{width:150px;flex:none;box-sizing:border-box;padding:14px 8px;background:var(--chrome);border-right:1px solid var(--line)}.brand{padding:0 8px 12px;font-weight:600}.tab{display:block;width:100%;box-sizing:border-box;padding:7px 8px;border:0;border-radius:6px;background:transparent;color:var(--t2);text-align:left;white-space:nowrap}.tab.on{background:var(--fill);color:var(--t1);font-weight:600}.who{padding:20px 8px 0;font-size:11px;color:var(--t3);white-space:nowrap}.content{flex:1;min-width:0;box-sizing:border-box;padding:18px}.content>section{max-width:980px}.stack{display:flex;flex-direction:column;gap:14px}.stack.tight{gap:12px}.row{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.grow{flex:1}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:20px}.grid2>*{min-width:0}.semibold{font-weight:600}.small{font-size:12px}.t2{color:var(--t2)}.t3{color:var(--t3)}.strike{text-decoration:line-through}.btn{padding:4px 12px;border:1px solid var(--line2);border-radius:6px;background:var(--fill-weak)}.btn.primary{border-color:var(--t1);background:var(--t1);color:#fff}.btn.ghost{border-color:transparent;background:transparent;color:var(--t2)}.pill{padding:2px 10px;border:1px solid var(--line2);border-radius:999px;background:transparent;font-size:12px;color:var(--t2)}.pill.on{border-color:var(--t3);background:var(--fill);color:var(--t1)}.link{padding:0;border:0;background:transparent;color:inherit;font-size:inherit;text-decoration:none}.link:hover:not(:disabled){color:var(--t1);text-decoration:underline}.input{padding:4px 10px;border:1px solid var(--line2);border-radius:6px;background:var(--bg)}.weight-input{width:120px;box-sizing:border-box}.callout{padding:10px 12px;border-left:3px solid var(--accent);border-radius:4px;background:var(--fill-weak);color:var(--t2)}.callout.warn{margin-bottom:14px;border-left-color:#d4533b}.callout-title{margin-bottom:2px;color:var(--t1);font-weight:600}.caption{font-size:12px;color:var(--t3)}.chart{display:flex;flex-direction:column;gap:6px}.plot{width:100%;height:auto;display:block}.plot .grid{stroke:var(--line);stroke-width:1}.plot .axis{fill:var(--t3);font-size:11px}.empty{display:flex;align-items:center;justify-content:center;aspect-ratio:420 / 180;border:1px dashed var(--line2);border-radius:6px;color:var(--t3)}.legend{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:12px;color:var(--t2)}.legend i{display:inline-block;width:9px;height:9px;margin-right:5px;border-radius:2px}.day{padding-top:10px;border-top:1px solid var(--line)}.day-head{gap:12px}.day-label{width:80px}.items{display:flex;flex-wrap:wrap;gap:10px 18px;margin-top:8px}.item{display:flex;align-items:center;gap:8px;font-size:12px}.item.gone{opacity:.55}.thumbs{display:flex;gap:4px}.box{width:44px;height:44px;flex:none;display:flex;align-items:center;justify-content:center;overflow:hidden;border-radius:6px;background:var(--fill);color:var(--t3);font-size:10px;text-decoration:none}.item.gone .box{background:var(--fill-weak)}.box img{width:100%;height:100%;object-fit:cover}.face{flex:none;color:var(--t2)}.table{width:100%;border-collapse:collapse}.table th{padding:6px 8px;border-bottom:1px solid var(--line);color:var(--t3);font-size:12px;font-weight:500;text-align:left}.table td{padding:8px;border-bottom:1px solid var(--line)}.table .r{text-align:right}.code{letter-spacing:2px}.login{display:flex;flex-direction:column;gap:12px;max-width:340px;margin:64px auto;padding:0 16px}.login label{display:flex;flex-direction:column;gap:4px;color:var(--t2);font-size:12px}@media(max-width:720px){.frame{display:block}.side{width:auto;padding:10px 0 0;border-right:0;border-bottom:1px solid var(--line)}.brand{padding:0 12px}.tabs{display:flex;gap:4px;padding:8px;overflow-x:auto}.tab{width:auto;padding:6px 10px}.who{padding:6px 10px}.content{padding:14px}.grid2{grid-template-columns:1fr}}@media print{.side,.noprint{display:none}.content{padding:0}.content>section{max-width:none}.chart,.day{break-inside:avoid}.box{width:120px;height:120px}}
