
:root{--bg:#f6f7f9;--card:#fff;--muted:#667085;--border:#e5e7eb;--shadow:0 10px 30px rgba(0,0,0,.06)}
*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Arial;background:var(--bg);color:#111}
.container{max-width:1200px;margin:24px auto;padding:0 16px}.card{background:var(--card);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow);padding:16px}
.toolbar{display:flex;align-items:center;gap:12px;margin-bottom:12px}.toolbar .title{font-weight:700;font-size:20px}.toolbar .spacer{flex:1}.btn{appearance:none;border:1px solid var(--border);background:#fff;padding:8px 12px;border-radius:10px;cursor:pointer}.btn:active{transform:translateY(1px)}
.notice{background:#fff8e1;border:1px solid #ffe082;color:#795548;border-radius:10px;padding:10px 12px;margin-bottom:12px}
.table-wrap{overflow-x:auto}table.grid{width:100%;border-collapse:collapse;font-size:14px}.grid th,.grid td{border-bottom:1px solid var(--border);padding:10px}.grid thead th{background:#f0f3f8;font-weight:600;text-align:center}.grid tbody td:first-child{font-weight:600;position:sticky;left:0;background:linear-gradient(90deg,#fff 85%,rgba(255,255,255,0))}
.cell-stars{display:flex;align-items:center;justify-content:center;gap:6px}.star{width:28px;height:28px;border-radius:999px;display:grid;place-items:center;border:2px solid currentColor;background:transparent;cursor:pointer;transition:transform .08s ease}.star.active{color:#fff!important}.star.active svg{fill:#fff!important}.star:hover{transform:scale(1.06)}.star svg{width:16px;height:16px;fill:currentColor}
.recap{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:16px}.recap .card{padding:14px}.recap .head{display:flex;align-items:center;justify-content:space-between}.recap .rewards{margin-top:8px;font-size:13px;color:var(--muted)}.badge{display:inline-block;border:1px solid var(--border);padding:4px 8px;border-radius:999px;margin:2px 4px 0 0}.small{font-size:12px;color:var(--muted)}
.week-nav{display:flex;align-items:center;gap:8px}.week-nav .btn{padding:6px 10px}.week-range{font-weight:600}
